WriteConsoleOutputCharacter崩溃了控制台应用程序
WriteConsoleOutputCharacter crashing the Console Application
尝试使用WriteConsoleoutputCharacter函数时,应用程序崩溃。
COORD pos;
pos.X = 0;
pos.Y = 0;
HANDLE buffer = GetStdHandle(STD_OUTPUT_HANDLE);
LPDWORD written;
char* str = "s";
WriteConsoleOutputCharacter(buffer, str, strlen(str), pos, written);
但是WriteConsole函数正常工作:
WriteConsole(buffer1,str,strlen(str),written,NULL);
我没有遇到任何错误,但是Windows"应用程序停止响应"。通知,我无法使用调试器,因为我正在使用的IDE(Dev C 5.11)有一个破损的。
变量 written
指向在哪里?该函数将取消该参数以设置书面字符的数量。如果该变量未初始化,它将具有不确定的值,并且似乎指向一个随机位置,在被验证时会导致不确定的行为。
而是使用普通的DWORD
并使用操作员地址&
:
DWORD written;
WriteConsoleOutputCharacter(buffer, str, strlen(str), pos, &written);
// ^
// Note the address-of operator here
,或者如果您对写了多少个字符不感兴趣,请通过nullptr
。
相关文章:
- C++控制台应用程序阻止退出
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- 如何在 Win32 C++控制台应用程序中调用 UWP 类库
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 如何创建一个使用开源c项目的c++控制台应用程序
- c ++控制台应用程序,如何在控制台外部打印字符
- 像 CPP 中的控制台一样的应用程序
- 调试控制台 ChessEngine.exe "used"在另一个应用程序(国际象棋 GUI)中
- 将控制台应用程序直接输出到Visual Studio而不是外部Windows控制台中
- 如何在 Win32 控制台应用程序中注册不可见的窗口类?
- 如何将从控制台应用程序C++回调设置为C++ COM DLL
- 使用代码在 AWS 开发工具包C++控制台应用程序上设置凭证
- 直接输入控制台应用程序
- C++调试控制台应用程序
- C++控制台应用程序调用C++/CLI静态库
- 如何在控制台应用程序中添加滚动功能以显示更大的输入
- C++应用程序控制台未退出
- 如何使用VSCode调试C++应用程序控制台应用程序
- 用于调试消息的跨平台GUI应用程序控制台
- 自定义应用程序控制台和stderr