我很确定这是一个愚蠢的问题,但它让我疯狂..
我怎么能在控制台上打印一个TCHAR阵列?
DWORD error = WSAGetLastError();
TCHAR errmsg[512];
int ret = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, error, 0, errmsg, 511, NULL);
Run Code Online (Sandbox Code Playgroud)
我需要打印errmsg ...
Tho*_*mas 12
这取决于什么TCHAR.如果在启用Unicode的情况下编译,TCHAR则定义为wchar_t.然后你可以使用std::wcout,例如:
std::wcout << L"Error: " << errmsg << '\n';
Run Code Online (Sandbox Code Playgroud)
如果未启用Unicode,TCHAR则是普通的char,您可以使用普通的std::cout:
std::cout << "Error: " << errmsg << '\n';
Run Code Online (Sandbox Code Playgroud)
#include <tchar.h> /* _tprintf */
DWORD dwError;
BOOL fOk;
HLOCAL hlocal = NULL; // Buffer that gets the error message string
fOk = FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS |
FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL, dwError, 0, (PTSTR) &hlocal, 0, NULL);
if (! fOk) hlocal = TEXT("Fehler FormatMessage");
_tprintf( TEXT("%d\t%s\n"), dwError, hlocal );
if (fOk) LocalFree(hlocal);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19259 次 |
| 最近记录: |