0

这是我的代码:

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

我需要路径char*,而不是路径TCHAR[]。不转换有可能(WideCharToMultiByte)吗?

谢谢...

4

2 回答 2

6

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

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

char szProcessName[MAX_PATH] = "<unknown>";
GetModuleFileNameExA(hProcess, NULL, szProcessName, sizeof szProcessName);
于 2009-08-03T09:38:35.767 回答
0

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

于 2009-08-03T11:51:22.950 回答