您的位置:首页 > 其它

函数导出方式不对,导致的“error link2019 无法解析的外部符号 ”

2014-07-11 18:06 417 查看
最近工作中,需要使用proj4库,因为Proj4库存是C语言dll库。使用C++程序调用的时候,出现了无法解析的2019错误。

查阅了csdn,原来是导出函数写的不对。

情况一: C++ dll,供C++可执行程序调用

   

</pre><pre name="code" class="cpp">#ifdef GEOSUTIL_EXPORTS
#define MICAPSURPORT_API __declspec(dllexport)
#else
#define MICAPSURPORT_API __declspec(dllimport)
#endif


情况二: C语言的dll,供C++可执行程序调用

// MyCFuncs.h
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
// used by C++ source code
#endif

__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();

#ifdef __cplusplus
}
#endif

如果需要将 C 函数链接到 C++ 可执行文件,并且函数声明头文件没有使用上面的技术,则在 C++ 源文件中添加下列内容以防止编译器修饰 C 函数名:

extern "C" {
#include "MyCHeader.h"
}


参考网址:csdn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐