突然我的代码开始抛出异常 VideoPlayer.exe 中 0x7731c41f 处的第一次机会异常:Microsoft C++ 异常:内存位置 0x0018f5dc 处的 GenICam::RuntimeException..
我找不到它的确切位置throws from,所以我在 main
函数中和 main
之外的所有内容都进行了注释。我开始一个一个地取消注释代码块,而 main
中的代码仍然是commented。在这样做的时候我注意到有一个函数 A
当它被注释时没有异常,但是当它被取消注释时它会抛出上面的异常。
我不明白如果不调用它怎么会导致异常(我在其中放置了断点并且 main 中的代码被注释了)?
最佳答案
您的函数将在静态初始化期间使用。 举个例子:
#include <iostream>
bool static_func()
{
std::cout << "Before main" << std::endl;
return true;
}
static const bool b = static_func();
int main()
{
std::cout << "We are main" << std::endl;
return 0;
}
因为您只会看到第一次机会异常,所以它会被捕获并处理。例如,我在抽象工厂中看到过这样的构造,工厂在其中进行 self 配置。
您的断点未命中的原因一定是其他原因。
关于c++ - 如果没有人调用该函数,为什么我会得到 First-chance 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883908/