GetModuleFileName возвращает путь в формате 8.3 - PullRequest
3 голосов
/ 24 марта 2011

Я вызываю эту функцию, чтобы получить путь к exe. GetModuleFileName (NULL, ... Проблема в том, что иногда он возвращает короткий путь (8.3) вместо обычного длинного пути.

MSDN указывает, что

The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix "\\?\".

Как мне избежать этого поведения и заставить Api возвращать полный путь?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Вы не можете избежать этого - если DLL загружается с коротким именем, это то, что вы получаете.

Используйте GetLongPathName для преобразования при необходимости.

0 голосов
/ 24 марта 2011

Вы не можете. Используйте GetFullPathName , чтобы получить полный путь.

См. Также раздел «Примечания» на странице, на которую вы ссылаетесь:

Глобальная переменная _pgmptr автоматически инициализируется по полному пути исполняемого файла и может использоваться для получения полного пути к исполняемому файлу.

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