提问者:小点点

__declspec(dllexport)错误:未命名类型/所需的初始值设定项


我的编译器是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”之前应为初始值设定项

我做错了什么?


共1个答案

匿名用户

__declspec(dllexport)是MSVC特定的。

对于GCC,请改用__attribute__((dllexport))

例如:

#ifdef _MSC_VER  // VC++
#  define MY_API __declspec(dllexport)
#else
#  define MY_API __attribute__ ((dllexport))
#endif