从现在开始的几天里,我一直致力于一个非 Visual C++ 运行时库项目,但是,直到我的链接器开始提示 的未解析外部符号之前,我的进展很顺利。 __CxxFrameHandler3
CRT 函数,因此在搜索产生此错误的原因后,我发现从主入口点调用任何自定义类的方法都是调用此 CRT 函数,简单的示例:
// /No Common Language RunTime Support
// /Ignore All Default Libraries
class A
{
public:
A();
~A();
int do_something();
private:
};
int A::do_something()
{
return 0;
}
int EntryPoint()
{
A a;
a.do_something(); // Calls the __CxxFrameHandler3 CRT function.
return 0;
}
错误:
LNK2019 unresolved external symbol ___CxxFrameHandler3 referenced in function __unwindfunclet$?UmbraServerMain@@YGHPAUHINSTANCE__@@0PA_WH@Z$0
有办法阻止调用此 CRT 函数吗?
最佳答案
重新发布我的评论作为答案:
该函数与 SEH(结构化异常处理)有关,因此要停止调用它,需要在项目中禁用异常(SEH 和 C++ 异常)。
关于c++ - 阻止我的项目调用__CxxFrameHandler3(CRT函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51640568/