GetModuleFileName 獲取程式路徑

2021-07-23 13:27:41 字數 1120 閱讀 1651

api函式getmodulefilename():獲得應用程式目錄相對路徑

mfc函式getmodulefilename():獲得應用程式目錄絕對路徑

採用.\\也能獲得應用程式當前目錄

當前目錄不一定等於應用程式執行檔案的所在目錄,乙個應用程式被啟動時,當前目錄是可以被任意設定的。

getmodulefilename()得到模組的完整路徑名,例如,你載入c:\windows\system32\a.dll,得到模組控制代碼h,則你可以用getmodulefilename()得到h模組的完整路徑名。

.\\一般用在包含標頭檔案的語句中。另乙個是程式編譯後起作用的,例如,開啟自定義的配置檔案等。

注:直接用loadlibrary()或afxloadlibrary()載入dll,該函式返回值就是handle;如果你隱式載入dll, 用getmodulehandle("dll檔名")也可以得到handle;

在開發工程中,往往需要知道當前程式本身所在目錄。

一種方法是在程式安裝的時候利用安裝程式把檔案路徑寫入登錄檔。在較大的程式中,這種方法比較常用

另一種,就是在程式得到路徑。這樣,程式隨便移動到**,都可以得到正確的路徑。這也是這裡介紹的方法。

/*得到幫助檔案的路徑*/

char drive[_max_drive];

char dir[_max_dir];

//得到當前執行程式所在目錄,strpath即為得到的當前執行程式所目錄

/*得到全路徑*/

tchar exefullpath[max_path]; // max_path

getmodulefilename(null,exefullpath,max_path);//得到程式模組名稱,全路徑,也就是當前執行程式的全路徑。利用方法一的解析路徑的方法,即可得到程式所在路徑。

getmodulefilename函式原型

dword getmodulefilename(

hmodule hmodule, // handle to module。將要得到的模組的控制代碼。如果是當前模組,null

lptstr lpfilename, // path buffer 得到的檔名。

dword nsize // size of buffer 一般max_path就可以了

程式設計師的路

一直想就程式設計師30歲以後的發展說點什麼,正好今天狀態不佳,無心幹活,就開點小差。思緒也許會有些亂,看者亂入,切勿對號入座。程式設計師現在還是乙個朝陽產業,為什麼呢,看我們身邊,是不是還是新生力量居多,當90後馬上就要登上職場時,你會發現,你的身邊還有一些人,70後 80初,仍然在從事著程式設計師...

程式設計師的路

個人有些理想主義的想法,現實主義的不適用症狀。可能在我們大部分人身上都有這樣的毛病。不知道程式設計師這天路應該怎麼往前進,什麼心態對待生活。我有的時候有這樣的無奈,倔強的性格,讓我有強有力的想法去做某些事情,可是沒有膽量開始,個人妥協編造的理由是,乙個波音747引擎,拉動自己這個肉體軀殼 國產拖拉機...

程式設計師的路

一直想就程式設計師30歲以後的發展說點什麼,正好今天狀態不佳,無心幹活,就開點小差。思緒也許會有些亂,看者亂入,切勿對號入座。程式設計師現在還是乙個朝陽產業,為什麼呢,看我們身邊,是不是還是新生力量居多,當90後馬上就要登上職場時,你會發現,你的身邊還有一些人,70後 80初,仍然在從事著程式設計師...