即使将返回 0 作为 main 的第一行,程序也无法退出C++

C++ program cannot exit even with return 0 as the first line in main

本文关键字:程序 一行 C++ 退出 返回 作为 main      更新时间:2023-10-16

我写了一个简单的基于http服务器的套接字。但是即使这样,它也不能通过 main 函数中的return 0;退出:

int main(int argc, wchar_t* argv[])
{
    return 0;
}

该程序将在doexit(code, 0, 0);(*function_to_call)();被阻止。当我直接关闭cmd窗口时,有一个警报:

(NTDLL.dll) 向服务或函数发送无效参数

我怀疑我的项目配置有问题。但我找不到原因。

模拟这种情况的简单情况是:

struct A{ ~A() { while(true); } };
A a;
int main() {}

a析构函数在完成main时调用。但是由于某种原因,此功能被阻止,因此程序被阻止。