我想實現_set_se_translator。我試着寫具有以下簽名的函數(從我的.cpp文件 - 當然,我在我的.h文件類似的簽名):似乎無法拿出正確的參數_set_se_translator
void CIntersonBScan::trans_func(unsigned int u, EXCEPTION_POINTERS* pExp)
然後我通過這個函數作爲參數通過向_set_se_translator寫下面的代碼:
_set_se_translator(&CIntersonBScan::trans_func);
我再編譯我的代碼,並得到以下錯誤消息:
錯誤C2664: '_set_se_translator':無法從「無效轉換參數1(__ thiscall CIntersonBScan :: *)(無符號整數,EXCEPTION_POINTERS *)'到'_se_translator_function'
在eh.h文件,我發現_se_translator_function如下定義:
typedef void (__cdecl *_se_translator_function)(unsigned int, struct _EXCEPTION_POINTERS*);
我試圖改變trans_func的簽名,仍然得到了同樣的錯誤消息。我已經設置了/ EHa編譯選項。如何創建一個真正匹配_se_translator_function簽名的函數?
感謝您的幫助!我將該函數轉換爲靜態函數。我以爲我嘗試過使用免費站立功能,但看起來我做錯了什麼。 – 2011-04-15 18:13:36