I am new to Windows APIs. I am doing an exercise on printing the computer name to the console. Here is the code I have so far:
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);
The issue is on the output. I only see Computer name is D
on the console, when I should see DESKTOP-XXXXXX
.
What am I doing wrong? I believe I am calling the right functions, per the MSDN docs. I have seen posts on StackOverflow regarding this issue, but it is in C++ and not C.
I feel like it has something to do with me printing a Unicode string.
>Solution :
The format specifier %s
is for printing a string pointed at by char*
, even in wprintf
.
You should use format specifier %ls
to print a string of wide characters.