Visual Studio的SDK
Visual Studio 6.0自帶的SDK是1998年的,目錄為C:\Program Files\Microsoft Visual Studio\VC98\,這里簡記為VS6SDKDIR。
以下為打開vc6菜單tools->options->directories. 我們看到Platform為Win32,
Show directories for下拉列表框有以下四項:Executable files、Include files、Library files、Source files。
(1)Include files的目錄:VS6SDKDIR\Include,VS6SDKDIR \MFC\Include,VS6SDKDIR \ATL\Include
(2)Library files目錄:VS6SDKDIR\LIB,VS6SDKDIR \MFC\ LIB
(3)Source files目錄:VS6SDKDIR\MFC\SRC,VS6SDKDIR\MFC\Include,VS6SDKDIR\ATL\Include,VS6SDKDIR\CRT\ SRC
如果想更新VC++6.0的SDK,只要從微軟網站上下載SDK
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
然后增加以下路徑即可:
Executable files:你的platform安裝路徑\bin;你的platform安裝路徑\bin\winnt
Include file:你的platform安裝路徑\include
Library files:你的platform安裝路徑\lib
Source files:可添加也可不添加
配置完之后,可以調整各路徑與原有路徑的前后次序,因為編譯和連接的時候是按照順序尋找相應的include和lib。為了保證用上最新的,你可以把路徑放在原來的配置中vc6自帶的sdk路徑前面。不過有時編繹會遇到你include的VC提供的.h文件語法什么的錯誤,這時候調整一下directory設置中sdk includ路徑和 vc include路徑的順序。再試一般就可以了。
從Windows 98起,Windows SDK叫Platform SDK,Visual Studio 2005的SDK目錄為:C:\Program Files\Microsoft Visual Studio 8\VC(VCInstallDir)
例如我們安裝了Microsoft DirectX SDK (August 2006)后,利用DirectX Sample Browser 安裝生成的EmptyProject C++(July2004),在Visual Studio 2005編譯會出現找不到XInput.h頭文件,這時我們必須添加DirectX SDK到VC++目錄。
工具—>選項—>項目和解決方案—>VC++目錄:
添加包含文件C:\Program Files\Microsoft DirectX SDK (August 2006)\Include
添加庫文件C:\Program Files\Microsoft DirectX SDK (August 2006)\Lib\x86
這樣就建立起了Visual Studio 2005+ DirectX SDK開發DirectX程序的環境。
#include頭文件
函數調用出現在函數定義之前,或者調用在其他文件(如系統庫)定義的函數,必須先
進行函數聲明。系統函數按功能被分成幾大類,對應每類函數有一個頭文件,其中給出了這一類函數的原型聲明。
假設我們在#include "test.h"聲明了一個函數:void test(void),在HeaderDemo.cpp中
#include "test.h",則在test.h中聲明的test函數在當前文件的域內是可見的了。而關於test函數的具體定義(函數體)可以放在當前項目的任何一個文件test.cpp、aaa.cpp、xxx.cpp……中。函數的聲明不是整個編譯的發起者。編譯器會按部就班遍歷所有文件的。
#include <stdlib.h> //聲明公共的系統標准函數
#include "MyPrg.h" //聲明用戶自定義的常量、變量及函數
第一種形式的#include指令告訴編譯預處理程序在編譯器自帶的或外部庫的頭文件中
搜索要嵌入的文件,它們一般是系統提供的公共頭文件,存放在系統目錄中的include文件夾下,如VS2005中的C標
准庫函數C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(cstdlib),剛好在指定的VC++目錄的第
一項(VCInstallDir)include。
第二種形式的#include指令告訴編譯預處理指令現在當前子目錄搜索要嵌入的文件,如
果沒有找到文件,則在去搜索編譯器自帶或外部庫的頭文件。
庫函數的頭文件一般用第一種形式,因為這種訪問比較快。