我的编译器是Mingw5.3.0 32位C++。
我所拥有的是:
接口。h:
#define MY_API __declspec(dllexport) /* I know, later do #ifdef for dllimport */
extern "C" MY_API int MyFunc();
Interface.cpp:
#include "interface.h"
MY_API int MyFunc() {}
编译此代码会使我:
“my_api”不命名类型
因此,当我将declspec
直接放入cpp时,
Interface.cpp:
__declspec(dllexport) int MyFunc() {}
然后它给出了这样一个错误:
“myfunc”之前应为初始值设定项
我做错了什么?
__declspec(dllexport)
是MSVC特定的。
对于GCC,请改用__attribute__((dllexport))
。
例如:
#ifdef _MSC_VER // VC++
# define MY_API __declspec(dllexport)
#else
# define MY_API __attribute__ ((dllexport))
#endif