新建一个Win32控制台应用程序,想在其中调用MyDll中的函数。
采用隐式配置方案时,出现MyDll.lib找不到,无法打开!!!
采用显示的#pragma comment(lib,"MyDll.lib")
#include
#pragma comment(lib,"G://My program\DynamicLibrary\Debug\__ltp_dll.lib")
//#include "__ltp_dll.h"
using namespace std;
//
declspec(dllimport) int CreateDOMFromString(const char *str);
int main()
{
CreateDOMFromString("ABCD");
return 0;
}
编译错误,提示,无法解析的外部符号 "_declspec(dllimport) int __cdecl CreateDOMFromString(char const *)"
妹子已经弄了两天也没搞定,求各位大神帮忙
使用dumpbin工具查看mydll中这个函数是使用c格式的名称约定还是c++的,另外还要看调用约定是c还是stdcall,此外,mydll导出名称了没有,用dumpbin可以对lib文件做个确认,是否存在你要用的这个函数名称。
函数调用约定对吗,CreateDOMFromString
是cdecl还是stdcall
1。调用约定,调用约定不同会使编译器使用不同的符号名修饰约定,造成无法连接
2。因为C++有重载,因此函数符号名不符合修饰约定的标准,因此需要加extern "C"