_set_purecall_handler和_set_purecall_handler_m有什么区别?

时间:2013-06-14 20:02:37

标签: c++ c debugging visual-studio-debugging

我调试了一个代码,并使用 _set_purecall_handler 来设置纯调用虚函数发生时调用的函数。 MSDN的这个例子对我很有帮助并且做我想做的事:code from msdn
所以,你可以看到函数的声明

    void myPurecallHandler(void)
    {
     printf("In _purecall_handler.");
     exit(0);
    }

这个函数必须返回一个void值并且没有任何参数,当一个纯调用virtuall函数发生时调用这个函数。我试图重载这个函数来传递一个参数(纯粹的调用virtuall函数发生的行号),但不能成功。
如果你看到,那里还有另一个功能: _set_purecall_handler_m
此函数与_set_purecall_handler有什么区别?

非常感谢,

1 个答案:

答案 0 :(得分:2)

_set_purecall_handler_m用于使用C ++和C ++ - CLI时的混合模式CRT。如果您不使用C ++ - CLI,您实际上不需要使用它。但是,如果您正在创建一个可能与C ++ - CLi应用程序一起使用的DLL,您可能需要考虑使用它。