如果没有人调用函数,为什么会出现第一次机会异常? P>突然,我的代码开始在VooPooServ.EXE中的0x731 C41F中抛出异常:代码:微软C++异常:GANICAM::RunTimeExtExchange在内存位置0x00 18F5DC…我找不到它从哪里抛出,所以我在代码< >主< 函数和在主< /代码>之外的所有东西都进行了注释。我开始逐一取消注释代码块,而main中的代码仍保持注释状态。在做这件事的时候,我注意到有一个函数A,当它被注释时没有异常,但是当它被取消注释时,它会抛出上面的异常

如果没有人调用函数,为什么会出现第一次机会异常? P>突然,我的代码开始在VooPooServ.EXE中的0x731 C41F中抛出异常:代码:微软C++异常:GANICAM::RunTimeExtExchange在内存位置0x00 18F5DC…我找不到它从哪里抛出,所以我在代码< >主< 函数和在主< /代码>之外的所有东西都进行了注释。我开始逐一取消注释代码块,而main中的代码仍保持注释状态。在做这件事的时候,我注意到有一个函数A,当它被注释时没有异常,但是当它被取消注释时,它会抛出上面的异常,c++,visual-studio-2008,exception,first-chance-exception,C++,Visual Studio 2008,Exception,First Chance Exception,我不明白如果不调用它,它怎么会导致异常(我在其中放置了断点,并对main中的代码进行了注释)?静态初始化期间将使用您的函数。 以以下为例: #include <iostream> bool static_func() { std::cout << "Before main" << std::endl; return true; } static const bool b = static_func(); int main() { std

我不明白如果不调用它,它怎么会导致异常(我在其中放置了断点,并对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;
}
#包括
布尔静态函数()
{

std::cout在VS中,Debug菜单,Exceptions…检查throw列中的匹配类型。然后开始调试,它将在发生throw的地方停止。您可以查看原因。

是否更改了任何项目属性???@IAMHERE,没有。我在
A
函数中检查了代码,并且使用了第三方类型(
BCamera-camera;
)。可能当
A
被注释时,链接器将其从最终代码中排除,当
A
未注释时,链接器包含该类型,因此可能在某个地方存在一些全局/静态对象实例化。是否有任何方法调试此类事情?