读书人

C写的DLLC++调用有关问题

发布时间: 2012-02-26 20:19:44 作者: rapoo

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

读书人网 >C++

热点推荐