1
我跟在this example上攔截類中的C++函數。用LD_PRELOAD攔截C++類的構造函數
但是現在我想攔截類的構造函數和析構函數,而不僅僅是成員函數。
在這個例子中,他的確是typedef unsigned int (Foo::*methodType)() const;
。我不認爲你可以在C++中使用typedef構造函數/析構函數。
我該怎麼做?
我跟在this example上攔截類中的C++函數。用LD_PRELOAD攔截C++類的構造函數
但是現在我想攔截類的構造函數和析構函數,而不僅僅是成員函數。
在這個例子中,他的確是typedef unsigned int (Foo::*methodType)() const;
。我不認爲你可以在C++中使用typedef構造函數/析構函數。
我該怎麼做?
我試過 typedef void (QDBusConnection::*MyFunction)();
它工作,我可以用(this->*origMethod)();
來調用它,即使origMethod是一個析構函數並且沒有返回說明符。
,我寫我就怎麼做攔截析構函數,在這裏靜態類功能
http://www.osletek.com/learning-center/150/Intercepting_C%2B%2B_functions_using_LD_PRELOAD
這是一個可怕的黑客,但我猜想,一個構造函數和析構函數的行爲就像一個'空白(美孚步驟: :*方法)()'方法,可能是僞造的。用反彙編測試一下,或者對平臺的ABI進行一些研究,應該能夠證實這一點。 – 2014-10-07 20:57:09