include+lib設定是乙個不錯的方法,但是有時候為了保證**的可以移植需要設定相對路徑。
要了解vc中使用#include命令包含標頭檔案所搜尋的路徑,必須先了解vc中的幾種路徑:
1. 系統路徑
系統路徑在vc中是"tools->options->directories"中"include files"指定的路徑。
開啟此對話方塊會發現預設有這幾條路徑:
c:\program files\microsoft visual studio\vc98\include
c:\program files\microsoft visual studio\vc98\mfc\include
c:\program files\microsoft visual studio\vc98\atl\include
我們可以在這裡新增,這樣我們自己新增的路徑也會成為系統路徑。新增的格式必須按照上面來寫。
2. 當前路徑
當前路徑是指vc工程中工程檔案所在的路徑,即.dsw檔案所在路徑。
網上有很多朋友說,當前路徑是指.cpp檔案所在路徑,經過測試,這個說法也是正確的。但是使用vc編譯時,是不正確的。
3. 附加路徑
附加路徑是指在"project->settings->c/c++->preprocessor->additional include directories "中指定的路徑。
此路徑預設為空,我們可以在此處填寫需要路徑,比如:在此處填入"c:\123\",(不要引號),那麼附加路徑就會變成"c:\123\" 。
上面的1,3路徑,我們均可以自己編輯。在編輯過程中,可以使用絕對路徑,也可以使用相對路徑。
比如,在新增系統路徑時,可以這樣填寫:
.\src\ 這樣寫表示,當前目錄中的src資料夾;
..\src\ 這樣寫表示,當前目錄的上一層目錄中src資料夾;
...\src\ 這樣寫表示,當前目錄下 ..\src\\ 路徑,當然這種寫法已經和第一種重疊了。
這種相對路徑的寫法,vc會自動幫我們轉化為絕對路徑。
在新增附加路徑時,其相對路徑的寫法和系統路徑是一致的。
在vc中使用#include 命令,有三種形式:
1. #include
vc執行這條指令時,它會在系統目錄中去查詢 file.h 檔案。
在此條碼命令中,vc不會去當前路徑和附加路徑中查詢檔案。
2. #include "file.h"
vc執行這條指令時,它首先會搜尋附加路徑,如果沒有則會搜尋系統路徑,如果還沒有則會去搜尋當前路徑。
3. #include "directory\file.h"
vc執行這條指令時,它會去指定的路徑去查詢檔案,如果沒找到,它不會繼續查詢。
visual c++ 概念:生成 c/c++ 程式
模組定義 (.def) 檔案
模組定義 (.def) 檔案為鏈結器提供有關被鏈結程式的匯出、屬性及其他方面的資訊。生成 dll 時,.def 檔案最有用。由於存在可代替模組定義語句使用的鏈結器選項,通常不需要 .def 檔案。也可以將 __declspec(dllexport) 用作指定匯出函式的手段。
在鏈結器階段可以使用 /def(指定模組定義檔案)鏈結器選項呼叫 .def 檔案。
如果生成的 .exe 檔案沒有匯出,使用 .def 檔案將使輸出檔案較大並降低載入速度。
有關更多資訊,請參見下列章節:
*模組定義語句的規則
*exports
*heapsize
*library
*name
*sections
*stacksize
*stub
*version
*保留字
請參見參考
鏈結器選項
有關生成的常見問題
其他資源
c/c++ 生成參考 ;
; aidemo_cpp.def
; 該檔案定義了dll要匯出的函式介面名
library "aidemo_cpp"
exports
ai_create @1
ai_destroy @2
ai_init @3
ai_setdepth @4
ai_settimelimit @5
ai_placechessman @6
ai_play @7
ai_isfull @8
ai_iswin @9
ai_querysituation @10
ai_queryauthorinfo @11
ai_queryaiinfo @12
; ok, over
VC2010除錯DLL工程的方法
如果有用於建立可執行檔案的專案,則從該專案開始除錯。然後可以開啟 dll 的原始檔,並在該檔案中設定斷點,即使它不是用於建立可執行檔案的專案的一部分。如果從建立 dll 的專案開始除錯,則必須指定在除錯 dll 時要使用的可執行檔案。為除錯會話指定可執行檔案 在 解決方案資源管理器 中,選擇用於建立...
VC2010的 DYNAMICBASE鏈結選項問題
近期偶然用windbg給乙個控制台程式的入口函式下斷點,位址之際用編譯出的map檔案中main函式的位址。結果windbg報告斷點未下成功,經過反覆檢視,包括在vc環境中除錯執行,均發現main函式的位址和map檔案中位址不一樣,切帶有隨機性。又用vc6.0實驗一遍,發現沒有任何問題。看來問題是出在...
VC 2010中GDAL的安裝
準備檔案 vs2010 必須滴 gdal的原始碼 我用的這個版本的 1 編譯gdal,獲取include和lib和dll 2 啟動cmd,進入vc10的安裝目錄下,預設為c program files microsoft visual studio 10.0 vc bin,要是你會改目錄,找這個東西...