GetModuleFileNameEx - 是否可以在char *中获取路径而不在TCHAR []中获取路径?

时间:2009-08-03 09:34:42

标签: c++ winapi ascii

这是我的代码:

TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
GetModuleFileNameEx (hProcess, NULL, szProcessName, 
                     sizeof(szProcessName)/sizeof(TCHAR));

我需要char*中的路径,而不是TCHAR[]中的路径。如果没有转换(WideCharToMultiByte)

,是否可能

...谢谢

2 个答案:

答案 0 :(得分:6)

GetModuleFileNameEx只是一个宏。您可以将GetModuleFileNameExA用于ANSI版本。它将调用GetModuleFileNameExW,然后在内部进行所有转换。

但是你应该确保模块文件名不包含Unicode字符。

char szProcessName[MAX_PATH] = "<unknown>";
GetModuleFileNameExA(hProcess, NULL, szProcessName, sizeof szProcessName);

答案 1 :(得分:0)

请注意,如果您没有构建Unicode应用程序(即,未定义_UNICODE),则TCHAR == char