2015-07-20 76 views
0

上述問題。例如,我有一個自定義的DLL /二進制/可執行文件,並且我想獲得一個指針數組,指向存儲在這個文件中的所有函數。我想過(1)虛擬/純虛擬函數和(2)將函數放置在特定地址下,但我不確定第一個(我想使用malloc和原始數據加載),而我不能使第二種解決方案易於用於潛在的模型。C/C++:獲取指向沒有函數名稱的函數的指針

如何在C/C++中做到這一點,這可能嗎?

在此先感謝!

+0

你想如何捕捉功能?每個人都有不同的簽名。 –

+1

您能否提供更多關於您爲什麼需要這些指針的信息,以及您將如何處理這些指針? 你想實現一個系統來加載你的應用程序的mods嗎? – stgatilov

+4

「*我想過虛擬/純虛擬功能,並將它們放在一個特定的地址*」你真的應該得到你的名字creepyman900。 – 2015-07-20 08:46:41

回答

0

那麼,你不能在一個文件中獲得「全部」功能,因爲這通常有點不明確。另外,您將如何處理__new_behind_the_scenes(__some_type_you_dont_understand&)

你當然可以自由導出void(*ptrs[23])(void*),並且填寫該數組並不會太困難。 難以做到的是對這樣的API做一些有用的事情。這對於改裝者來說將會是一團糟。他們是否需要記住呼叫ptrs[16](&Widget)來默認初始化一個小部件並且ptrs[17](&Widget)再次銷燬它?