C++编译问题:ERR2019 LNK 无法解析的外部符号

造成这个问题的原因——很有可能是导出方式不对!

情况一: 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"
}



此外还有其他一些相对复杂的情况,详见

http://blog.csdn.net/enotswn/article/details/5934938

你可能感兴趣的:(C++编译问题:ERR2019 LNK 无法解析的外部符号)