正在使用GetComputerNameW打印计算机名

kupeojn6  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(158)

我是Windows API的新手。我正在做一个关于将计算机名打印到控制台的练习。以下是我目前拥有的代码:

wchar_t compName[MAX_COMPUTERNAME_LENGTH+1];
DWORD maxSize = MAX_COMPUTERNAME_LENGTH+1 ;
BOOL getName = GetComputerNameW(compName, &maxSize);

wprintf(L"Computer name is: %s",compName);

问题出在输出上。我只在控制台上看到Computer name is D,而我应该看到DESKTOP-XXXXXX
我做错了什么?我相信我调用了正确的函数,根据MSDN文档。我在StackOverflow上看到过关于这个问题的帖子,但它是在C++而不是C中。
我觉得这和我打印Unicode字符串有关。

bis0qfac

bis0qfac1#

格式说明符%s用于打印char*指向的字符串,即使在wprintf中也是如此。
应该使用格式说明符%ls打印宽字符串。
printf, _printf_l, wprintf, _wprintf_l | Microsoft Learn

相关问题