目录
一、问题描述
在使用GetProcAddress()获取DLL中函数,结果返回空句柄。
二、问题分析
这是由于我用C++编译器在编译代码时会对编译出来的函数名称添加额外字符。
比如MyFunction函数编译后可能为 _ZN10@MyFunction@EmmmRm
void MyFunction()
{
printf("MyFunction!\n");
}
三、解决方法
添加extern "C"后编译器会以C代码的格式进行编译,最终编译出来的函数名就是定义的名字。
extern "C"
{
void MyFunction()
{
printf("MyFunction!\n");
}
}
可以使用depends来查看编译的library内容:
下载链接: