未处理的异常-如果/SUBSYSTEM参数发生更改,则访问冲突
Unhandled Exception - Access violation if /SUBSYSTEM parameter is changed
我有一个应用程序,在其中我使用console
来查看输出的一些值。现在,一些需求已经发生了变化,我在运行时不再需要console
。
我试图通过将Project Properties->Linker->System->Subsystem
下的/SUBSYSTEM
参数从Console
切换到Windows
来改变这一点,就像我对之前的事情所做的那样,它已经奏效了。
在这种情况下,它在mfc110u.dll
中给我一个未处理的异常,因为对象无法实例化。
为什么会出现这种异常,否则我如何在运行程序的情况下关闭console
?我使用VS2012
作为开发环境。
如果您不想要控制台,请声明winmain。这是非unicode版本的
#include <windows.h>
#include <iostream>
#include <cstdio>
int main (int, char**);
// If we just start with main, we will always get a console window
int WINAPI WinMain (
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
int argc = __argc;
char** argv = __argv;
#ifdef DEBUG
// If we are running in debug mode, open a console window
AllocConsole();
freopen("conin$", "r", stdin);
freopen("conout$", "w", stdout);
freopen("conout$", "w", stderr);
#endif
return main (argc, argv);
}
int main (
int argc,
char** argv
)
{
MessageBox(NULL, "Whoo hoo", "It Works!!!", MB_OK);
return 0;
}
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 如何访问模板参数自己的模板参数?
- 读取访问冲突.这0xCDCDCDCD
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 使用参数的 C# 委托回调会导致从 DLL 调用时C++访问冲突
- 向 const 字符串参数发送 0 int 文本时的访问冲突
- 当第 4 个(可选)参数为 NULL 时,写入文件将引发访问冲突
- 将 LPTSTR 参数传递给 DLL 会在项目中C++出现访问冲突
- C++ - 函数、参数和指针 - 访问冲突
- std::线程在使用参数创建时抛出访问冲突异常
- 未处理的异常-如果/SUBSYSTEM参数发生更改,则访问冲突