我有一个使用_set_invalid_parameter_handler函数的C#代码。它是特定于Windows的,我正在尝试用标准的C++重写这段代码,这样它就可以在Linux上运行了。
我不确定如何翻译这个功能。有人建议我使用http://en.cppreference.com/w/c/error/set_constraint_handler_s,但我遵循了这个例子,在visual studio 2015中没有识别约束处理程序的类型,当我试图在Linux上编译它时也不能识别。无论是使用约束处理程序,还是找到其他方法在标准C++中复制_set_invalid_parameter_handler功能,我都会非常感激。
发布于 2017-07-11 21:50:54
这并不容易,set_constraint_handler是一个C11功能,而set_invalid_parameter是特定于微软的(也是在C++中)。
在标准的C++中,解决方案是使用异常,并尝试/捕获而不是设置处理程序-但它要求您调用的低级函数实际检测并发出异常错误信号-所以我们需要一个更完整的示例来看看这是否有帮助。
https://stackoverflow.com/questions/45035457
复制相似问题