C写的DLL,C++调用问题
我用C写的DLL,在导出函数的时候如果写
#define OUT_API __declspec(dllexport)
OUT_API int xout(int argc, char **argv);
没问题,但在C++项目中调用时,lib文件我也加了,但还是会出现链接错误,说xout无法解析。
后来,导出函数改成
#define OUT_API extern "C " __declspec(dllexport)
连编译都通不过,说 error C2059: 语法错误 : “字符串”。
请高人指点一下,我的DLL 还用了其它静态链接库的。
[解决办法]
#define OUT_API __declspec(dllexport)
extern "C "
OUT_API int xout(int argc, char **argv);
[解决办法]
//上面错了, 应该是
#if defined(ADLL_EXPORTS)
#define OUT_API __declspec(dllexport)
#else
#define OUT_API __declspec(dllimport)
#endif
[解决办法]
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
extern "C " DLLIMPORT int hello();
这样定义函数
[解决办法]
在dll项目中这样写:
#ifdef __cplusplus
extern "C " {
#endif
OUT_API int xout(int argc, char **argv);
#ifdef __cplusplus
}
#endif