使用VS2010 自带工具:
DUMP /exports xxx.dll 导出函数表
生成xxx.def文件:
EXPORTS
func1@0 @1
func2@0 @2
注: @0表示没有参数, 如果有参数, 用参数*4, 如一个参数@0改为@4, 两个参数@0改为@8, 与此类推,修改后用LIB重新生成 LIB库
用lib.exe
lib /def:xxx.def /machine:i386 /out:xxx.lib
生成xxx.lib
在VC2010 用
#pragma comment(lib, "xxx.lib")
extern "C" int WINAPI func1();
extern "C" int WINAPI func2(int p1,int p2, int p3);
int _tmain(int argc, _TCHAR* argv[])
{
func1();
int pp=func2(10,20,30);
return 0;
}
经测试调用成功
带参数的, 用IDA 分析XXX.DLL的参数数量及堆栈使用类型(__cdecl,__stdcall), 不知道参数类型, 可暂定为int