2011-04-06 46 views
0

應該可以從沒有相應的dll頭文件的DLL中獲得一個類對象!但是我怎樣才能從頭文件沒有已知類型的GetProcAddress類的typedef?GetProcAddress一個沒有頭文件的類對象

你有個例子嗎?

感謝和問候,

leon22

+0

您的意思是類定義嗎?使用'typedef'可爲現有類型或類型集合定義一個新名稱,如'typedef int Array [3];' – harper 2011-04-06 11:07:51

回答

0

GetProcAddress給你一個函數的地址。當你有完整的C++類成員函數的裝飾名稱時,你可以得到它的地址。使用相同的信息,您可以使用undname實用程序獲得該方法的簽名。

但是您將需要頭文件來獲取類定義本身。

0

如果你不知道所涉及的類型,你不能調用一個函數,這幾乎是結束。

+0

您可以使用Dependency Walker獲取名稱和類型! – leon22 2011-04-06 11:20:57

+0

@ leon22:那不就是你自己的問題嗎? – MSalters 2011-04-06 12:12:12

+0

嗨!不,因爲我不能在沒有已知類型的頭文件的情況下typedef我的類對象(也許有一種方法void *)!? – leon22 2011-04-07 07:08:46

0

如果我正確理解你的問題,你需要DLL中的一個對象(即實例)的地址。 GetProcAddr不會給你,但它可以給你一個函數的地址,這個函數可以反過來給你對象的地址,如果這個函數存在於DLL中的話。如果該函數具有外部「C」鏈接,則不會有任何名稱混亂。

+0

我已經有了這個dll函數,它工作正常,但是當我們對頭文件進行任何更改時,我們必須重新編譯整個項目! – leon22 2011-04-06 11:41:02

相關問題