DLL 导出 LIB 并调用

使用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

 

 

 

你可能感兴趣的:(DLL 导出 LIB 并调用)