怎樣編譯DirectX程式

來源:互聯網
上載者:User

 在編譯DirectX程式時總是出現諸如“error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'”的錯誤,即便是安裝了DirectX的SDK也一樣,這讓剛剛一腔熱血奔赴遊戲開發的初學者來說真是當頭一棒深受打擊,不過沒關係,下面我將詳細說明問題產生的原因及其解決方案。

首先,要開發DirectX程式,必須安裝DirectX SDK,到網上都能找到,9.0 的 SDK 大概227兆大小;

安裝完成後就可以進行DirectX程式設計了,一般我們都知道,要使用SDK,就要包含它的標頭檔和lib庫,參照SDK提供的sample,做一個最簡單的DX程式,但是我們馬上會發現,即使我們包含了#include "ddshow.h"等必須的標頭檔、在Settings裡麵包含了dxguid.lib、ddraw.lib、dsound.lib等庫檔案,編譯時間總會出現這樣的錯誤:

G:/.....xx.h(209) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'

當然了,意思是說我不認識“LPDIRECTDRAWSURFACE7”這個傢伙,那麼好,從Tools->Options...->Directories中將DX SDK 的Include目錄(比如你的SDK安裝在了D:盤的DXSDK下,則Include目錄為D:/DXSDK/Include)加進去、將DX SDK 的lib目錄加進去,然後編譯,暈啊,還是一如既往的不認識LPDIRECTDRAWSURFACE7符號,忽然想到編譯器的尋找順序問題,遂重新進入Tools->Options...->Directories中,將Include裡的DXSDK的目錄往上移到第一行,編譯,OK了@_@

不過這時候又出現了新情況:

xx.obj : error LNK2001: unresolved external symbol _DirectDrawCreateEx@16

xx.obj : error LNK2001: unresolved external symbol _IID_IDirectDraw7

找不到連結符號DirectDrawCreateEx,同樣的問題:包含了新標頭檔,連結了老lib庫,所以有些函數是找不到的,同樣,進入Tools->Options...->Directories中,將lib裡的DXSDK的目錄往上移到第一行,編譯,OK。

總結:一般出現找不到標頭檔的錯誤,我們都能想到可能是找不到SDK目錄的問題,在Tools->Options...->Directories中將相應include、lib目錄加進去就行了,但是接下來的錯誤往往讓我們一頭霧水,因為該加的都加了,很容易忽略目錄順序的問題。

over了。

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.