WriteConsoleOutputCharacter 无法正常工作

问题描述 投票:0回答:1

我试图设置几个函数来与 Windows 控制台一起使用。 Window API 中的函数

WriteConsoleOutputCharacter()
并不像以前那样打印完整的字符串,起初我以为这是我这样做的方式,但后来我尝试在新文件上使用函数来完成它,并且我得到相同的结果:

代码:

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>


int main() {
    HANDLE console = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, 0, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
    SetConsoleActiveScreenBuffer(console);
    wchar_t* data = L"Hello World";
    DWORD bytes = 0;
    COORD pos = {0,0};

    while (1) {
        WriteConsoleOutputCharacter(console, data, strlen(data), pos, &bytes);
    }

    CloseHandle(console);

    return 0;
}

输出:

H
(字符串的第一个字符)。

脱离循环时不打印。

注意:预处理器定义中的字符集设置为 unicode。

c windows api console
1个回答
0
投票

函数

strlen
不应用于 UTF-16 (Unicode) 字符串。您应该使用函数
wcslen
来代替。

© www.soinside.com 2019 - 2024. All rights reserved.