Windows程式的相對路徑

2021-06-16 23:31:40 字數 447 閱讀 9715

最近乙個程式出現了乙個問題,每當開啟選擇檔案對話方塊時,日誌模組就報乙個io錯,上網查了一下,

僵哥在一帖中的話一下讓我明白了(還是對windows底層機制不夠了解啊),確定是由於使用了相對路徑引起的問題:

1.在沒有主動呼叫setcurrentdirectory,之前當前路徑即為程序啟動時所指定的初始路徑,該路徑不一定就是程序主程式所在的目錄(詳細可以參考createprocess當中的第八個引數);

2.通常dialog都會設定為修改當前路徑,所以當你選擇確定的時候,當前路徑就會變成dialog上面顯示的(選擇的)路徑。

通常來講,使用這種不確定的相對路徑是非常不安全的,任何乙個執行單位都有可能會通過顯式或者隱式的呼叫setcurrentdirectory調整當前路徑,比較好的辦法是通過環境變數或者getmodulefilename等方式取得某一特定的相對路徑(其中包括當前應用程式,當前使用者等等),然後再計算。

轉 Windows系統相對路徑

絕對路徑 是從碟符開始的路徑,形如 c windows system32 cmd.exe 相對路徑 是從當前路徑開始的路徑,假如當前路徑為c windows 要描述上述路徑,只需輸入 system32 cmd.exe 實際上,嚴格的相對路徑寫法應為 system32 cmd.exe 其中,表示當前路...

VS程式的相對路徑

例如某工程檔案 audio.vcproj 所在目錄路徑為 d kinect test speaktotxt src project 該工程中包含的原始檔要包含乙個標頭檔案,該標頭檔案所在路徑如下 d kinect test speaktotxt include 則可以從工程檔案audio.vcpro...

路徑詳解 絕對路徑,相對路徑,根相對路徑

路徑詳解 重點 1 絕對路徑 1 什麼是絕對路徑 檔案從最高端目錄下開始的完整路徑 1 訪問網路資源 1 由以下四個部分組成 1 協議名稱 2 主機名 ip位址,網域名稱 3 目錄路徑 4 檔名 ex 1 協議名 2 主機名 網域名稱 3 目錄路徑 img4 檔名 bd logo1.png 2 訪問...