2011-03-24 46 views
3

我調用這個函數來獲取exe的路徑。 GetModuleFileName(NULL,... 的問題是,有時它返回來代替普通的長路徑的短路徑(8.3)。GetModuleFileName返回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返回的完整路徑

回答

3

你不能避免它 - 如果DLL加載了一個簡短的名字,這就是你得到的。

使用GetLongPathName進行轉換,如果需要。

+0

+1,比GetFullPathName更好(MSDN警告不要在多線程程序中使用它) – MSalters 2011-03-24 09:38:28

0

不能使用GetFullPathName得到完整的路徑

參見頁中的註釋部分鏈接到您?。

全局變量_pgmptr自動初始化爲可執行文件的完整路徑,並可用於檢索可執行文件的完整路徑名。