



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.一般性 DirectX 開發(fā)事宜我在試圖編譯示例時(shí),為何得到那么多錯(cuò)誤消息?您可能沒有將 include 路徑設(shè)置正確。許多編譯器(包括 Microsoft® Visual C+®)包含 SDK 的一個(gè)較早版本,因此如果您的 include 路徑首先搜索標(biāo)準(zhǔn)的編譯器 include 目錄,則您會(huì)得到不正確版本的頭文件。為解決這一問題,請確保 include 路徑和庫路徑被設(shè)為搜索 DirectX include 和庫路徑。另請參見 SDK 中的 dxreadme.txt 文件。如果您安裝 DirectX SDK 而您又在使用 Visual C+,則可以選擇讓安裝程序?yàn)槟O(shè)
2、置各個(gè) include 路徑。我得到關(guān)于全局唯一標(biāo)識(shí)符 (GUID) 符號(hào)重復(fù)或缺失的連接器錯(cuò)誤,怎么辦?您使用的各種 GUID 應(yīng)該得到一次性定義,且只能定義一次。如果您在插入 DirectX 頭文件之前用 #define 定義 INITGUID 符號(hào),則會(huì)插入 GUID 的定義。因此,你應(yīng)確保只對一個(gè)編譯單元進(jìn)行此類操作。這一方法的一個(gè)替代方案就是用 dxguid.lib 庫進(jìn)行連接,其中包含所有 DirectX GUID 的定義。 如果您使用這一方法(建議),則您永遠(yuǎn)不要通過 #define 定義 INITGUID 符號(hào)。我能否將指針指向一個(gè)到較低版本號(hào)的 DirectX 接口?不能。D
3、irectX 接口屬于 COM 接口。 這意味著不要求將較高版本號(hào)的接口從相應(yīng)的低版本號(hào)導(dǎo)出。因此,獲得到 DirectX 對象的一個(gè)不同接口的唯一安全方法就是使用接口的 QueryInterface 方法。該方法是標(biāo)準(zhǔn)的 IUnknown 接口的一部分,所有 COM 接口必須從其導(dǎo)出。我能在同一應(yīng)用程序中將 DirectX 8 組件和 DirectX 7 或更早的組件混用嗎?您可以隨意混用不同版本的“不同組件”;例如,您可以在將 DirectPlay 8 和 DirectDraw 7 用在同一應(yīng)用程序中。但是,您通常不可以將“同一組件”的不同版本混用在同一應(yīng)用程序中;例如,您不能混用 Dir
4、ectDraw 7 和 Direct3D 8 (鑒于這些實(shí)際上是同一組件,因?yàn)?DirectDraw 已被含入 DirectX 8 的 Direct3D)。Release 或 AddRef 方法的返回值有何含義?返回值將是對象的當(dāng)前參照計(jì)數(shù)。但是,COM 規(guī)范聲明,您不應(yīng)依賴該返回值;該值通常僅供用于調(diào)試目的。您觀察到的值可能并非所期待的,因?yàn)楦鞣N其它系統(tǒng)對象可能保持著對你所創(chuàng)建的 DirectX 對象的參照。 因此,您不應(yīng)編寫反復(fù)調(diào)用 Release 的代碼,一直到參照計(jì)數(shù)為零,因?yàn)榇藭r(shí)可以將對象釋放,即使另一組件可能仍舊在對其進(jìn)行參照。我釋放 DirectX 接口的次序很重要嗎?應(yīng)當(dāng)沒有問
5、題,因?yàn)?COM 接口是參照計(jì)數(shù)的。 但是,在某些 DirectX 版本中,接口的釋放次序有一些已知的缺陷。 安全起見,在可能的情況下,建議您以與創(chuàng)建時(shí)相反的次序釋放接口。智能指針是什么,我要用它們嗎?智能指針是一個(gè) C+ 模板類,旨在封裝指針功能。尤其有一些標(biāo)準(zhǔn)智能指針類,用于封裝 COM 接口指針。這些指針自動(dòng)進(jìn)行 QueryInterface,而不是進(jìn)行造型,并替您處理 AddRef 和 Release。您是否使用這些指針,大體上是個(gè)人偏好。如果您的代碼包含大量的接口指針復(fù)制操作,即使用多重 AddRefs 和 Releases,則智能指針可能會(huì)使您的代碼更加簡潔和不易出錯(cuò)。否則,不用也
6、罷。Visual C+ 包含一個(gè)標(biāo)準(zhǔn)的 Microsoft COM 智能指針,是在 "comdef.h" 頭文件中定義的(請?jiān)趲椭胁檎?com_ptr_t)。我在調(diào)試 DirectX 應(yīng)用程序時(shí)遇到問題,能提示一下嗎?調(diào)試 DirectX 應(yīng)用程序時(shí)最常見的問題就是試圖在 DirectDraw 表面被鎖定時(shí)進(jìn)行調(diào)試。這一情形會(huì)在 Microsoft Windows® 9x 系統(tǒng)上導(dǎo)致 "Win16 Lock" ,因此而無法繪制調(diào)試窗口。在鎖定表面時(shí)指定 D3DLOCK_NOSYSLOCK 旗標(biāo),通常會(huì)消除該現(xiàn)象。Windows 2000 沒有
7、這一問題。在開發(fā)一個(gè)應(yīng)用程序時(shí),最好運(yùn)行調(diào)試版本的 DirectX 運(yùn)行時(shí)(在安裝 SDK 時(shí)進(jìn)行選擇);該版本進(jìn)行某些參數(shù)證實(shí),并將一些有用的消息輸出到調(diào)試程序的輸出窗口。如何正確地檢查返回代碼?使用 SUCCEEDED 和 FAILED 宏。 DirectX 方法可以返回多個(gè)成功和失敗代碼,因此一個(gè)簡單的 "=D3D_OK" 或類似的測試結(jié)果不總是夠用的。DirectDraw 有何變化?DirectDraw 的大多數(shù)功能現(xiàn)已被含入新的 Direct3D8 接口。編制單純 2D 應(yīng)用程序的開發(fā)人員可能會(huì)希望繼續(xù)使用舊的 DirectX 7 接口。對于編制帶有某些 2D 元
8、素的 3D 應(yīng)用程序的開發(fā)人員,鼓勵(lì)其使用 Direct3D 替代程序(例如點(diǎn)對象和公告牌紋理),因?yàn)檫@會(huì)改善性能和靈活性。我如何禁用 ALT+TAB 以及其它的任務(wù)切換功能?請切勿這樣做。有什么值得推薦的對 COM 進(jìn)行解釋的書嗎?Inside COM (COM 內(nèi)幕),Dale Rogerson 著,Microsoft Press 出版,其中對 COM 進(jìn)行了很好的介紹。如要詳細(xì)考察 COM,Essential COM (COM 精解),Don Box 著,Longman 出版,這本書也很值得推薦。有什么關(guān)于一般性 Windows 編程的書嗎?很多。但筆者認(rèn)為值得推薦的書有: · Programming Windows
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 1584-2023 低壓電源系統(tǒng)的電涌保護(hù)器(SPD)
- 二零二五年度專業(yè)技術(shù)師徒傳承合作合同
- 2025年度門店合作線上線下融合營銷協(xié)議
- 二零二五年度不占股份分紅權(quán)益共享協(xié)議
- 二零二五年度招商引資合同中的政府與企業(yè)合作模式創(chuàng)新
- 2025年度終止供貨協(xié)議函范文模板與簽訂程序指導(dǎo)
- 二零二五年度綠色建筑產(chǎn)業(yè)廠房租賃服務(wù)協(xié)議
- 二零二五年度勞動(dòng)合同法未簽訂合同員工競業(yè)禁止協(xié)議
- 二零二五年度物業(yè)安全管理人員勞動(dòng)合同范本
- 二零二五年度消防安全設(shè)施設(shè)備安全評估與整改服務(wù)合同
- 《Spring框架》教學(xué)課件
- 七年級下冊《平行線的判定》課件與練習(xí)
- 2025年中考英語時(shí)文閱讀 6篇有關(guān)電影哪吒2和 DeepSeek的英語閱讀(含答案)
- 修高速土方合同范例
- 2024年形勢與政策復(fù)習(xí)題庫含答案(綜合題)
- 江蘇省南通市2025屆高三第一次調(diào)研測試數(shù)學(xué)試題(南通一模)(含答案)
- DCMM數(shù)據(jù)管理師練習(xí)測試卷
- 油氣行業(yè)人才需求預(yù)測-洞察分析
- 檢修安全知識(shí)培訓(xùn)課件
- 學(xué)校心理健康教育存在的問題及改進(jìn)措施
- 合成生物學(xué)研發(fā)平臺(tái)與年產(chǎn)200噸合成生物制品項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
評論
0/150
提交評論