我用MFC向导生成一个对话框程序,只加一个按钮,点击按钮就调用Init_Board();
这个函数在一个给定的头文件中定义的,形式如下:_declspec(dllexport) int WINAPI Init_Board(void);另外还有一个相应的Lib文件。
<<<<<<<编译时出现的错误>>>>>>>>>>>>>--------------------Configuration: test - Win32 Debug--------------------
Compiling...
testDlg.cpp
E:\MyWorks\C++\test\testDlg.cpp(12) : warning C4518: 'static char ' : storage-class or type specifier(s) unexpected here; ignored
E:\MyWorks\C++\test\testDlg.cpp(12) : error C2146: syntax error : missing ';' before identifier 'THIS_FILE'
E:\MyWorks\C++\test\testDlg.cpp(12) : fatal error C1004: unexpected end of file found
Generating Code...
Compiling...
test.cpp
Generating Code...
Error executing cl.exe.test.exe - 2 error(s), 1 warning(s)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<第12行是MFC自动生成的
-----------------------------------------
static char THIS_FILE[] = __FILE__;
-----------------------------------------
我是这样调用函数的:void CTestDlg::OnButton1() 
{
  Init_Board();
}
不知道对不对,因为我还不大明白  _declspec(dllexport) int WINAPI 是什么意思

解决方案 »

  1.   

    把 _declspec(dllexport) int WINAPI 中的 WINAPI 去掉试试 .
      

  2.   

    再怎么也不应该是_declspec(dllexport) int WINAPI Init_Board(void);
    应该是_declspec(dllimport) int WINAPI Init_Board(void);
      

  3.   

    WINAPI的作用就是修饰函数怎样压参数?
    你的错误和这个没关系的
    error C2146: syntax error : missing ';' before identifier 'THIS_FILE'是这个
    missing ';'
      

  4.   

    不会是Dll的问题,怀疑是其他地方的问题。如果拿掉这个头文件,掉这个函数的调用,看看还有没有错。
      

  5.   

    _declspec(dllimport) int Init_Board(void);