2012-12-11 45 views
4

我有一個C++ DLL,它是在1998年編寫的,我想查看成員(屬性,字段,方法,構造函數等)。我的理解是,編寫這個DLL的公司已經不在了,但它仍然在使用。查看C++ DLL的成員

如果我只有DLL,這可能嗎?或者你只需​​要知道DLL中的內容就可以使用它。如果有可能我會怎麼做呢?

我正在尋找通過P/Invoke從.Net通過DLL工作。

回答

4

得到這個:http://www.dependencywalker.com/,使用depends.exe來打開DLL,然後激活「視圖」菜單中的「Undecorate C++ Functions」。我主要用它來查找依賴關係,但它也暴露了DLL的入口點。

這不是傻瓜證明,因爲暴露類的DLL不必導出其方法。例如,純虛擬方法佈局足夠統一,您可以使用工廠函數將您的實例公開爲接口指針。但它可能會解決你的問題。

且不論,你需要依賴學步車的副本。 :)

3

您可以使用像IDA這樣的工具來分解二進制文件並嘗試創建函數名稱,但這可能很難。你爲什麼只有DLL?從關聯的lib的導出表中獲取信息要容易得多,甚至更好的是從頭文件中獲取信息。

0

你可以使用VS命令提示符 一個簡單的命令是:

dumpbin /exports <nameofdll>