2012-03-06 104 views
1

我正在嘗試爲某些Microsoft DLL(我想刪除一些函數)重新創建導入庫(.lib)。可以通過在def文件上使用lib.exe來爲dll創建lib文件。但是,__stdcall函數似乎很難做到這一點。用於Windows __stdcall DLL的DEF文件格式? (* .def - > lib.exe - > * .lib)

如何做到這一點?注意:我可以訪問dll和原始的lib文件。

+0

[從使用stdcall的DLL創建MSVC導入庫]的可能重複(http://stackoverflow.com/questions/2393178/creating-an-msvc-import-library-from-a-dll-that- uses-stdcall) – MSalters 2012-03-06 14:04:42

+0

如果你有.pdb文件,你可以這樣做。您可以從Microsoft符號服務器獲得。將其複製到與.dll相同的文件夾中,Dumpbin.exe/exports將顯示原始名稱.def樣式。否則這聽起來像是很多努力的小事。如果你想*替換*一個導出,那麼只需在導入.lib之前鏈接你自己的版本 – 2012-03-06 14:23:26

回答

1

你陷入了提問而不是描述問題的陷阱。你不能可靠地從EXE創建一個LIB(因爲它沒有適當的裝飾)。但幸運的是,這不是你想要做的。

你真正想要做的就是從LIB中刪除對象。 Use the /REMOVE option