我想在我的程序中使用异常。但我的程序有自定义入口点,不使用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的情况下使用异常?
感谢。
答案 0 :(得分:-4)
如果您的程序是由Visual C ++编译的。你应该使用CRT。你不知道编译器做了什么。编译器可以在代码中的任何位置调用任何CRT函数。
如果你真的不想使用CRT。然后,使用其他编译器或其他语言,如Assembly。