c++ tchar

Convertir TCHAR en cadena en C++



string to int c++ (4)

Estoy tratando de convertir un TCHAR a una cadena como en:

std::string mypath; TCHAR path[MAX_PATH]; GetModuleFileName( NULL, path, MAX_PATH );

Necesito establecer mypath al de path . Hice un bucle simple y una path[index] concatenada path[index] a mypath y esto funciona, pero no me gusta de esta manera.

Soy nuevo en C ++ pero he hecho un montón de C #. He visto ejemplos del GetModuleFileName que pasa en un "char" pero no le gusta. Necesita el TCHAR o un LPWSTR .


Cuando realmente necesito hacerlo, uso lo siguiente:

TCHAR infoBuf[32767] GetWindowsDirectory(infoBuf, 32767); //Let''s convert to string... wstring test(&infoBuf[0]); //convert to wstring string test2(test.begin(), test.end()); //and convert to string.

Espero que ayude.


Si desea la ruta en caracteres, debe llamar a GetModuleFilenameA . Esa función toma LPSTR lugar de LPTSTR .

Tenga en cuenta que casi todas las funciones de Win32 que toman o devuelven cadenas tienen dos versiones, una que termina en A (ANSI?) Y la otra que termina en W (ancho).


TCHAR es una macro definida como char o wchar dependiendo de lo que tengas definido en tu conjunto de caracteres. El valor predeterminado después de 2008 es tener el conjunto de caracteres a Unicode. Este código funciona si cambias tu conjunto de caracteres.

int _tmain(int argc, _TCHAR* argv[]) { TCHAR* bob ="hi"; string s = bob; }

Haz clic derecho en la configuración del proyecto y cambia la siguiente

Si desea utilizar TCHAR como un conjunto de caracteres Unicode, use wstring