2010-08-09 90 views
0

任何人都可以告訴我如何獲得函數聲明我的意思是函數名稱從VC++ DLL文件。如何從VC++ .dll文件獲取函數名稱(函數聲明)?

我有.dll的VC++,我想從中提取函數名稱? 有沒有可能讓我知道。提前

感謝

感謝, 尼爾

+0

dll是否帶有調試信息? – 2010-08-09 13:57:02

+0

沒有DLL尚未與調試信息一起構建。 – 2010-08-09 14:06:11

回答

0

由於DLL不與調試信息構建,你只能看由DLL導出功能。使用「Dependency Walker」查看哪些函數由DLL導出。您將看到2種類型的功能。

如果該函數的名稱沒有被破壞(就像Windows DLL中的所有函數一樣),那麼你運氣不好。有(據我所知)無法得到這些函數的參數(除了查看文檔或可能隨DLL提供的包含文件)。

如果函數的名稱被破壞,它將會有一個像這樣的名字:?makeSizePositive @?$ RectangleTemplate @ J @ TOOLS @@ QAEXXZ。此方法最初名爲makeSizePositive,添加的所有亂碼都給出了關於方法所在的類,名稱空間和參數的一些線索。有關解釋,請參閱http://www.kegel.com/mangle.html#operators

+0

任何方式,我可以看到唯一的函數名稱沒有參數的功能使用? – 2010-08-09 17:51:41

+0

我不這麼認爲。您可以通過關於所有參數的指示(包括根本沒有參數)或者沒有任何信息的unmangled函數名稱來查看損壞的函數名稱。 – Patrick 2010-08-10 10:07:26