我想实现_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