如果當前開啟的檔案中要尋找同級的目錄檔案就要用到.\或者./ vc編譯器都可以識別。例如#define ".\xx\xx\xx.h"
如果當前開啟的檔案中要尋找在上級的目錄檔案就要用到 ..\ 或者../ vc編譯器都可以識別。例如#define "..\xx\xx\xx.h"
通過這樣簡單的標識,vc相對路徑的問題就解決了,這樣也就避免了設定繁瑣的系統路徑。當然了,設定相對路徑要在編碼的時候對檔案的存放層次關係特別清楚,否則統一修改路徑將會帶來很大的工作量。
方法1:
cstring strpath;
getcurrentdirectory(max_path,strpath.getbuffer(max_path));
strpath.releasebuffer();
filename=strpath+"\\"+dlg.getfilename();
方法2:
使用getmodulefilename(null,exefullpath,max_path);//得到程式模組名稱,全路徑
[cpp]view plain
copy
print?
cstring strpath;
getmodulefilename(null,strpath,max_path);
strpath.releasebuffer();
filename=strpath+"\\檔名.*";
在開發工程中,往往需要知道當前程式本身所在目錄。一種方法是在程式安裝的時候利用安裝程式把檔案路徑寫入登錄檔。在較大的程式中,這種方法比較常用;另一種,就是在程式得到路徑。這樣,程式隨便移動到**,都可以得到正確的路徑。這也是本文介紹的方法。
.\\是的到應用程式的當前目錄,但當前目錄不一定等於應用程式執行檔案的所在目錄,乙個應用程式被啟動時,當前目錄是可以被任意設定的;
getmodulefilename()得到模組的完整路徑名,例如,你載入c:\windows\system32\a.dll,得到模組控制代碼h,則你可以用getmodulefilename()得到h模組的完整路徑名。
例項:cstring strpath;
cstring filepath;
cstring getfilepath() 應用
cstring strxmlpath;
strxmlpath.format(_t("%s%s"),getfilepath(),_t("configure\\soundfile.xml"));
//strxmlpath=e:\a專案\hidd\main\configure\\soundfile.xml
絕對路徑 相對路徑的獲取
呼叫函式 getmodulefilename,返回當前程序的映象檔案 exe 所在的目錄。較為穩妥且移植性較好。函式原型 函式功能 此函式得到當前應用程式的執行目錄,還包括應用程式的檔名。引數 hmodule handle to module 要獲取檔名的模組控制代碼。null表示當前模組 lpfi...
VC中獲取exe檔案的相對路徑
最近的學習中需在相關方面的知識,就google了一下這方面的資料,也稍稍總結一下!具體 如下 char fullpath 255 char ptoken null getmodulefilename null,fullpath,sizeof fullpath 1 得到生成.exe程式的路徑 然後再用...
相對路徑與絕對路徑
相對路徑 以引用檔案之網頁所在位置為參考基礎,而建立出的目錄路徑。因此,當儲存於不同目錄的網頁引用同乙個檔案時,所使用的路徑將不相同,故稱之為相對。絕對路徑 以web站點根目錄為參考基礎的目錄路徑。之所以稱為絕對,意指當所有網頁引用同乙個檔案時,所使用的路徑都是一樣的。其實絕對路徑與相對路徑的不同處...