使用没有CRT的例外

时间:2013-07-05 16:34:10

标签: winapi exception try-catch crt

我想在我的程序中使用异常。但我的程序有自定义入口点,不使用CRT(C-runtime)。

我的程序很简单:

    MessageBox(NULL, L"exception will be thrown", L"ok", MB_ICONEXCLAMATION | MB_OK);
    try {
      throw 123;
    } catch (...) {
      MessageBox(NULL, L"exception thrown", L"ok", MB_ICONEXCLAMATION | MB_OK);
    }

当我使用标准入口点和CRT时,一切正常。但是当我更改程序的EP时,它会在调用函数_CxxThrowException时因错误“访问冲突”而崩溃。

我已经制作了崩溃的详细截图:http://vs712.server4u.cz/exception.png

导致此错误的原因是什么?是否有解决方法如何在不使用CRT的情况下使用异常?

感谢。

1 个答案:

答案 0 :(得分:-4)

如果您的程序是由Visual C ++编译的。你应该使用CRT。你不知道编译器做了什么。编译器可以在代码中的任何位置调用任何CRT函数。

如果你真的不想使用CRT。然后,使用其他编译器或其他语言,如Assembly。