Para este caso específico , la solución es bastante simple:
wchar_t szBuff[64];
swprintf(szBuff, L"%p", m_hWnd);
MessageBox(NULL, szBuff, L"Test print handler", MB_OK);
Es decir, utilizar cadenas Unicode en todas partes. En general, cuando se programa en Windows, usar wchar_t
y UTF-16 es probablemente el más simple. Depende de cuánta interacción tienes que hacer con otros sistemas, por supuesto.
Para el caso general, si usted tiene un archivo ASCII (o char *
) de cadena, siga cualquiera WideCharToMultiByte para el caso general, o mbstowcs
como señala @Matthew para los casos más simples (mbstowcs
obras si la cadena está en la corriente Locale C).
+1 para 'mbstowcs'! – alimg