如果您有一个DLL并想在您的代码中使用它,并且您有一个DLL__declspec(dllimport)
的DEF文件,则可以轻松地创建所需的LIB文件:
lib /def:mydll.def /nologo /machine:x86
创建mydll.lib
该命令应在Visual Studio SDK命令提示符中运行。
如果您没有DEF文件,则可以非常容易地手动编写它:在DependencyWalker(http://www.dependencywalker.com)中打开DLL ,选择“另存为”->“带有导入/导出列表的文本”并在txt文件中包含所有导出函数的名称和序号,如下所示:
Export Ordinal Hint Function Entry Point
------ ----------- ----------- -------------------------------- -----------
[C ] 2 (0x0002) 1 (0x0001) gsasl_base64_from 0x000024F0
[C ] 3 (0x0003) 2 (0x0002) gsasl_base64_to 0x000024A0
[C ] 4 (0x0004) 3 (0x0003) gsasl_callback 0x000018B0
[C ] 5 (0x0005) 4 (0x0004) gsasl_callback_hook_get 0x00001900
[C ] 6 (0x0006) 5 (0x0005) gsasl_callback_hook_set 0x000018F0
[C ] 7 (0x0007) 6 (0x0006) gsasl_callback_set 0x000018A0
[C ] 8 (0x0008) 7 (0x0007) gsasl_check_version 0x00001870
[C ] 9 (0x0009) 8 (0x0008) gsasl_client_mechlist 0x00001E20
[C ] 10 (0x000A) 9 (0x0009) gsasl_client_start 0x00001F40
其余的很快完成。创建具有以下格式的DEF文件:
EXPORTS
gsasl_base64_from @2
gsasl_base64_to @3
gsasl_callback @4
gsasl_callback_hook_get @5
gsasl_callback_hook_set @6
gsasl_callback_set @7
gsasl_check_version @8
gsasl_client_mechlist @9
gsasl_client_start @10
gsasl_client_suggest_mechanism @11
@后面的数字是序数。
PD:DependencyWalker甚至可以取消修饰C ++导出的加密名称,例如
Foo@@YGHHH@Z --> int Foo(int, int).
dumpbin.exe
从Powershell
- stackoverflow.com/questions/477387/cannot-find-dumpbin-exe/...