首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C写的DLL,C++调用有关问题

2012-02-26 
C写的DLL,C++调用问题我用C写的DLL,在导出函数的时候如果写#defineOUT_API__declspec(dllexport)OUT_APIin

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

热点排行