各位老师,C++动态加载dll失败,是啥原因呢?
本帖最后由 jtwc 于 2022-4-21 17:54 编辑各位老师,C++动态加载dll失败,是啥原因呢?谢谢了
dll源码https://www.52pojie.cn/thread-1180359-1-1.html
出错如下图:#include <stdio.h>
#include <iostream>
#include <windows.h>
using namespace std;
typedef int(*Func)(long, string, long, long);
int main()
{
Func scan_data;
HMODULE dllheader;
dllheader = LoadLibrary("F:\\test.DLL");
if (dllheader == NULL)
{
printf("dll加载失败!");
}
else
{
scan_data = (Func)GetProcAddress(dllheader, "Scan_data");
if (scan_data == NULL)
{
printf("获取函数句柄失败!");
}
else
{
printf("%x", scan_data(7128, "AF 00 00 00 14 00 00 00 CE 48", 0, 0));
}
}
FreeLibrary(dllheader);
system("pause");
return 0;
} 获取函数指针的时候是大小写敏感的,再者,你要看看那个函数是不是存在 xiao14116 发表于 2022-4-21 18:02
获取函数指针的时候是大小写敏感的,再者,你要看看那个函数是不是存在
老师,谢谢了,经过查看函数是存在的。 xiao14116 发表于 2022-4-21 18:02
获取函数指针的时候是大小写敏感的,再者,你要看看那个函数是不是存在
就是scan_data函数的类型不太明确 函数编译是C风格的,还是Cpp风格的? 原贴说的函数是scan_data 你调用的是Scan_data Ariol 发表于 2022-4-21 18:28
函数编译是C风格的,还是Cpp风格的?
老师,是VC6.0 smldhz 发表于 2022-4-21 18:29
原贴说的函数是scan_data 你调用的是Scan_data
老师,谢谢了,改为scan_data后,出错了,如下图: jtwc 发表于 2022-4-21 18:31
老师,是VC6.0
额,我的意思是编译的时候是用C风格编译,还是c++风格编译,C++风格编译,函数名在dll里不会就是那个名字的,会有点扩展。。。 Ariol 发表于 2022-4-21 18:35
额,我的意思是编译的时候是用C风格编译,还是c++风格编译,C++风格编译,函数名在dll里不会就是那个名字 ...
DLL是vc6.0编译的,我用的是C++