[C++] 烦人的error LNK2019和error LNK2001

常见原因:

  • 没有正确的设置引用的lib,新手常犯这个错误,这是最容易解决的问题。
  • extern "C"的问题。如果C++写的dll要给C程序用,那么就要注意extern "C"的问题。
  • 没有正确的dllexport,用depends.exe或者dumpbin.exe可以检查dll的导出符号表。看看是否正确的导出了符号。
  • UNICODE的区别,比如dll用了unicode进行编译,exe没用unicode,那么就会找不到符号。因为编码方式不一样。都用unicode或者mbcs可以解决这个问题。
  • MFC和ATL的区别,比如dll导出了ATL的cstring,exe用了MFC的cstring,那么就可能不匹配,因而找不到符号。通过宏定义或者项目设置可以解决这个问题。


原文地址:https://www.cnblogs.com/hehe520/p/6330341.html