GetModuleFileNameEx - возможно ли получить путь в char *, а НЕ в TCHAR []? - PullRequest
0 голосов
/ 03 августа 2009

Вот мой код:

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

Мне нужен путь в char*, а не в TCHAR[]. Возможно ли это как-то без конвертации (WideCharToMultiByte)?

Спасибо ...

Ответы [ 2 ]

6 голосов
/ 03 августа 2009

GetModuleFileNameEx - это просто макрос. Вы можете использовать GetModuleFileNameExA для версии ANSI. Он вызовет GetModuleFileNameExW и затем внутренне выполнит все преобразования.

Но вы должны убедиться, что имя файла модуля не содержит символов Unicode.

char szProcessName[MAX_PATH] = "<unknown>";
GetModuleFileNameExA(hProcess, NULL, szProcessName, sizeof szProcessName);
0 голосов
/ 03 августа 2009

Обратите внимание, что если вы не создаете приложение Unicode (то есть _UNICODE не определено), то TCHAR == char

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...