① 鬼泣4為什麼打不開
你好,國產三劍傲雲天團隊為你解答問題。
運行游戲後顯示」應用程序錯誤」:
② 鬼泣1閃退
鬼戲閃退不外乎以下幾種原因:
1、手機內存不足:可能你的手機後台開了太多的應用程序,在打開鬼泣的時候導致手機內存不足從而出現游戲閃退現象將後台不用的應用關掉就可以啦,再重啟游戲應該不會再閃退了。
2、手機網路問題:手機網路斷了或者不穩定也可能導致游戲閃退,建議大家在WiFi環境下玩鬼泣。
3、游戲版本問題:可能你手機上當前鬼泣版本不是最新版本;
4、游戲伺服器問題:可能當前游戲登錄玩家過多導致伺服器壓力太大,從而出現閃退現象,一般重啟幾次游戲就可以了。
5、手機殺毒軟體、手機助手攔截:可能你手機上安裝的殺毒軟體誤將游戲當成病毒進行了攔截,進入殺毒軟體取消攔截即可,這種情況比較少。
③ 我得鬼泣4一直錯誤
http://tieba..com/f?kz=111039298
網路搜的資料,解決xxxx指令引用的xxxxx內存,該內存為不可讀的方法
解決"XXXX指令引用的XXXX內存,該內存不能為read" 的方法
出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。
一:先說說硬體:
一般來說,電腦硬體是很不容易壞的。內存出現問題的可能性並不大(除非你的內存真的是雜牌的一塌徒地),主要方面是:1。內存條壞了(二手內存情況居多)、2。使用了有質量問題的內存,3。內存插在主板上的金手指部分灰塵太多。4。使用不同品牌不同容量的內存,從而出現不兼容的情況。5。超頻帶來的散熱問題。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。
二、如果都沒有,那就從軟體方面排除故障了。
先說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在緩沖區,需要操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「游標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,繼續在之後的執行中使用這塊內存。真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的內存不能為「read」錯誤,並指出被引用的內存地址為「0x00000000「。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是 「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效游標不一定總是0,因此錯誤提示中的內存地址也不一定為 「0x00000000」,而是其它隨機數字。
首先建議:
1、 檢查系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2、 更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3、 盡量使用最新正式版本的應用程序、Beta版、試用版都會有BUG。
4、 刪除然後重新創建 Winnt\System32\Wbem\Repository 文件夾中的文件:在桌面上右擊我的電腦,然後單擊管理。在"服務和應用程序"下,單擊服務,然後關閉並停止 Windows Management Instrumentation 服務。 刪除 Winnt\System32\Wbem\Repository 文件夾中的所有文件。(在刪除前請創建這些文件的備份副本。)打開"服務和應用程序",單擊服務,然後打開並啟動 Windows Management Instrumentation 服務。當服務重新啟動時,將基於以下注冊表項中所提供的信息重新創建這些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs
以上,希望對你有幫助
④ 我的鬼泣4為什麼不行 總是顯示什麼什麼不能「read」 煩啊
你好,電腦玩游戲出現,應用程序:「該內存不能為read或written」!偶然出現點【取消】!
先下:【read修復工具】,修復一下,試試!
這是你下載的「游戲軟體」與電腦「內存」有沖突!(答案原創,原作者:力王歷史)
1。游戲帶木馬或病毒!(殺毒軟體,全盤掃描與自定義掃描,重啟後,隔離區,徹底刪除)
2。游戲與其它游戲有沖突!(同類軟體,互不兼容!開始菜單,程序,卸載,只留一個游戲)
3。游戲與其它軟體沖突!(如:沖突播放器或某些殺毒軟體過於敏感,卸載播放器或殺毒,重裝游戲)
4。游戲版本電腦顯卡不支持!(下載:驅動人生或驅動精靈,更新顯卡驅動)
5。游戲缺少必要的dll文件或游戲補丁!(dll文件,360系統急救箱,dll文件恢復,添加恢復!游戲補丁建議去:官網下載!)
6。游戲帶惡評插件!(可以用360安全衛士或金山衛士,或可牛免費殺毒,掃描插件,立即清理)
7。游戲版本,不適合當前系統運行!(開啟「兼容模式」或更換游戲版本試試,建議去下載:正規官網游戲!)
8。游戲有bug或錯誤或帶可疑啟動木馬!(試試:360系統急救箱,系統修復,全選,立即修復!網路修復,開始修復!
再點:開始急救!重啟後,點開「文件恢復區」,全選,徹底刪除文件)!
9。再不行,開始菜單,運行 ,輸入cmd, 回車,在命令提示符下輸入(復制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘貼,回車,再輸入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回車!直到屏幕滾動停止為止,重啟電腦!
10。實在不行,還原系統,重裝游戲試試!
⑤ 為什麼玩steam裡面的游戲在線模式總是連接失敗像是GTA5人類一敗塗地 怪物獵人 鬼泣5 方舟
你說你在玩steam裡面游戲的時候,在線模式總是會連接失敗,就像是gta五人類,一敗塗地,怪物獵人,怪物獵人,鬼泣五,還有方舟的時候都會出現這種情況,我覺得可能並不是一個是你電腦有病毒,第二個是你網路有問題吧,建議就是查下一下病毒,再看一下你的網路有沒有問題?一般情況下,如果還是這樣子的話,從做一遍電腦系統試試看。
⑥ 為什麼我的電腦在安裝完鬼泣4時出現應用程序不存在無法連接網路的提示啊
當然不需要聯網,裝游戲花一個多小時太不正常了吧,裝的是漢化的還是原版的?重裝一遍試試,不行就換個版本,有的盜版碟缺少東西,害人不淺
⑦ 鬼泣4進入問題
內存指令不能read,這是在電腦使用中經常出現的問題,內存是主板上的存儲部件,是CPU直接與之溝通,並用其存放當前正在使用的(即執行中)的數據和命令的重要部件。當你用鍵盤或滑鼠輸入某個命令後,CPU就會解釋命令並將指令或程式載入到內存中,這樣程序才能夠被執行。而一旦內存發生問題了,程序就不能被執行,因此就產生了前面我們提到的「該內存不能為read或written」錯誤的警告。當然,出現了「該內存不能為read或written」的故障也不一定都是內存的問題,電腦中了病毒或木馬以及運行的程序本身的Bug也會造成這種現象。很難分清究竟是什麼原因造成的,一時半會不好排除,但沒關系,按確定、取消,重啟,即可。感興趣的網友可用下述辦法試著去解決:
1、打開的程序太多,如果同時打開的文檔過多或者運行的程序過多,沒有足夠的內存運行其他程序,要隨時關閉不用的程序和窗口。
2、自動運行的程序太多,關閉一些啟動程序, 開始-運行-Msconfig---啟動 ,除殺毒軟體、輸入法外一般的程序都可以關掉。
3、物理內存過小,加大婚理內存;內存和主板沒插好或其他硬體不兼容 重插內存或換個插槽 ;雙內存不兼容 ,要使用同品牌的內存或只要一條內存 ;劣質內存條或內存條壞了 更換內存條;合理設置虛擬內存。
4、市電電壓過大的波動,或者PC機上使用劣質電源,都會給內存帶來損害,更換功率大、質量好的電源。
5、PC機箱內充滿灰塵,或者PC工作環境相對潮濕,也會造成運行不正常。及時除塵。
6 、CPU、顯卡散熱問題 ,改善散熱 。
7、硬碟有問題 ,掃描修復或更換硬碟 。
8 、驅動問題 重裝更新驅動 。
9、非法操作,系統無法執行。
10、 軟體損壞 重裝軟體 ;軟體有BUG 打補丁或更新到最新版本 ; 軟體和系統不兼容 給軟體打上補丁或是試試系統的兼容模式 ; 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,卸載了試試 。
11、 系統本身有問題 有時候操作系統本身也會有BUG,要注意安裝官方發行的更新程序最好及時補上,必要時重裝系統。
12、 病毒問題 殺毒 ;殺毒軟體與系統或軟體相沖突 由於殺毒軟體是進入底層監控系統的,可能與一些軟體相沖突,卸載試試
13、試打開CMD窗口輸入如下命令:
for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回車
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回車 重啟。
⑧ 鬼泣4怎麼就玩不了了..什麼d3derr...
D3D設備是D3D的粉刷組件;它封裝並存儲粉刷的狀態,另外,D3D設備執行轉換和光操作,並光柵化一個圖像到一個面上。
本節主要包括內容:
1. 設備類型
2. 創建設備
3. 選擇設備
4. 不為人知的設備
5. 決定硬體支持
6. 處理頂點數據
7. 設備支持的初基類型
按照架構來說,D3D設備包含一個轉換模塊、一個光模塊、一個光柵化模塊;如下圖所示:
D3D當前支持兩種主要類型的D3D設備:帶硬體加速的光柵化以及硬體和軟體頂點處理的陰影HAL設備、一個引用設備。
你可以將這些設備看作兩個獨立的驅動。軟體和引用設備通過軟體驅動來表示,HAL設備通過硬體驅動來表示。最通常的利用這些設備的方式是在shipping程序中使用HAL設備作,在特性測試的時候引用驅動。第三方提供枚舉特殊的設備----例如,開發的硬體沒有發布。
程序創建的D3D設備必須於程序正在運行的設備性能相匹配,通過訪問安裝在計算機上的硬體來訪問或者枚舉軟體中3D硬體能力來訪問。因此,D3D為硬體訪問和軟體枚舉提供設備。
硬體加速設備比軟體設備有更好的性能,HAL設備類型在所有支持D3D圖像卡上可用。在大多數情況下,程序將有硬體加速的計算機作為目標並依賴軟體來適應低端計算機。
由於引用設備的異常,軟體設備並不總是能提供和硬體設備相同的特性。程序可以查詢來決定設備支持那些特性。
因為DirectX9提供的引用設備和軟體的行為等同於HAL設備,基於HAL設備上的程序編碼在軟體或引用設備無須修改。注意,提供的軟體或引用設備行為與HAL設備相同的時候,設備性能變化,特殊軟體設備可能實現較小部分的能力。
行為
D3D讓你可以指定設備行為,例如設備類型,IDirect3D9::CreateDevice方法來促使一個或多個行為多哥標志的聯合來控制D3D設備的全局行為。這些行為指定什麼需要或不需要在D3D運行時維護,使用所有設備類型和所有設備行為是可能的。例如,在設備創建的時候使用D3DCREATE_PUREDEVICE來指定D3DDEVTYPE_SW是有效的。
1.1.1. 設備類型
Ø HAL設備
最基本的設備類型是HAL設備,它支持硬體加速光柵化,且支持硬體和軟體頂點處理。如果你的正在運行程序的計算機配備了支持微軟Direct3D功能,你應該使用顯示卡來支持3D操作。Direct3D HAL設備以硬體的形式實現了全部或部分轉換、光和光柵化模塊。
程序不需要直接訪問3D卡,它們調用Direct3D函數和方法,Direct3D通過HAL來訪問硬體。如果你的程序正在運行的那台計算機上支持HAL,那麼它通過使用HAL設備將獲得最好的性能。
在C++創建一個HAL設備,需要調用IDirect3D9::CreateDevice方法,並傳遞D3DDEVTYPE_HAL常量作為設備類。
備註:硬體設備不能粉刷8位粉刷目標表面。
Ø 引用設備
D3D另外支持引用設備類型或者叫引用光柵,與軟體設備不同的是,引用設備支持每個D3D特性,因為這些功能為了實現精確,而不是速度,並且以軟體實現,所以結果不是很快。無論什麼時候,引用設備都利用特定的CPU指令,但它並不是為了某些程序使用的,使用引用設備僅僅是為了功能測試或演示的目的。
為了在C++創建一個引用設備,調用IDirect3D9::CreateDevice方法,並傳遞D3DDEVTYPE_REF常量作為設備類型。
1.1.2. 創建一個設備
備註:所有通過給定的微軟D3D對象創建的粉刷設備都共享相同的物理資源。雖然你的程序能從一個單個D3D對象創建多個粉刷設備,由於他們使用同一個設備,所以你必須付出極端性能的懲罰。
為了在C++程序中創建D3D設備,你的程序應該首先創建一個D3D對象,這個將在D3D對象中解釋。
首先,初始化D3DPRESENT_PARAMETERS結構,它在創建D3D設備的時候用到,下面的代碼例子詳細說明一個窗口程序後台緩沖區彈出到前台緩沖區。
LPDIRECT3DDEVICE9 pDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory (&d3dpp, sizeof (d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
下面,創建D3D設備,下面的IDirect3D9::CreateDevice調用指定默認的適配器,一個硬體抽象層設備和軟體頂點處理。
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&d3dDevice)))
return E_FAIL;
注意,創建、釋放、復位設備的調用應該在和焦點窗口的窗口程序在同一個線程中。
在創建設備之後,設置它的狀態。
1.1.3. 選擇一個設備
程序能夠查詢硬體來檢查支持D3D設備的類型。本節包含在枚舉顯示適配器和選擇D3D設備的基本任務。
程序必須執行一系列的任務來選擇一個適當的D3D設備。注意,下面的步驟目的是一個滿屏幕的程序,在多數情況下,一個窗口程序不能下面步驟的大部分。
1. 初始化;
程序必須枚舉系統上的顯示卡;一個卡就是一個物理硬體塊。注意,可能不止一塊圖形卡,例如雙重顯示的情況。與多監視器無關的程序可以忽略這步,並在第二步中傳遞D3DADAPTER_DEFAULT來調用IDirect3D9::EnumAdapterModes方法。
2. 對於每塊卡,程序調用IDirect3D9::EnumAdapterModes來枚舉支持的顯示模式。
3. 如果必要的話,程序需要調用IDirect3D9::CheckDeviceType來檢查每種枚舉模式中的硬體加速情況,如下面代碼所示。注意,這是唯一可能使用IDirect3D9::CheckDeviceType的地方,詳細見:判斷硬體支持。
D3DPRESENT_PARAMETERS Params;
// Initialize values for D3DPRESENT_PARAMETERS members.
Params.BackBufferFormat = D3DFMT_X1R5G5B5;
if(FAILED(m_pD3D->CheckDeviceType(Device.m_uAdapter, Device.m_DevType,Params.BackBufferFormat, Params.BackBufferFormat, FALSE)))
return E_FAIL;
4. 程序檢查調用IDirectD39::GetDeviceCaps方法來檢查該卡上期望的設備功能級別。該方法過濾那些不支持需要功能的設備,IDirect3D9::GetDeviceCaps返回的設備能力對於一個通過所有IDirect3D9::CheckDeviceType檢查的設備來說是一個常量。
5. 設備總是能夠粉刷設備支持一個枚舉顯示模式格式的面。如果要求粉刷一個不同格式的面,它調用IDirect3D9::CheckDeviceFormat,如果設備能粉刷這個格式,就可以保證所有IDirect3D9::GetDeviceCaps返回的能力都適用。
6. 最後,程序可以決定是否採用多采樣技術,例如:使用IDirect3D9::CheckDeviceMultiSampleType方法來支持一個全場景 antialiasing作為粉刷格式。
在完成上面的步驟之後,程序應該有一個它可以操作的顯示模式列表,最後一步就是核實有足夠可用的設備可訪問的內存來滿足緩沖區和antialiasing的需要。這個測試是必要的,因為模式和多采樣合並的內存消耗在核實之前並不可預知,另外,有些顯卡結構並不是有一個固定的設備訪問內存;這意味著程序或許會在「滿屏模式」的時候報「顯存溢出」的錯誤。典型地,程序應該從它提供給用戶的模式列表中刪除滿屏模式,或者應該試著通過減少後台內存的數量來消耗較少的內存,或者使用不是怎麼復雜的多采樣技術。
窗口程序執行同樣的一系列任務。
1. 判斷被窗口客戶區覆蓋的桌面矩形
2. 枚舉顯卡,查詢顯卡看哪個監視器覆蓋了客戶區,如果客戶區被多個卡擁有,那麼程序能選擇獨立地驅動每塊卡,或者驅動單個卡且有D3D從一個設備到另一個設備傳遞像素。程序也可以不管上面的兩步而使用D3DADAPTER_DEFAULT卡。注意,這可能導致將窗口放置到一個次要的監視器較慢。
3. 程序應該調用IDirect3D9::CheckDeviceType來決定在桌面模式下設備是否能支持指定格式的後台緩沖區的粉刷。IDirect3D9::GetAdapterDisaplayMode可用來判斷桌面顯示格式,如下面代碼:
D3DPRESENT_PARAMETERS Params;
// Initialize values for D3DPRESENT_PARAMETERS members.
// Use the current display mode.
D3DDISPLAYMODE mode;
if(FAILED(m_pD3D->GetAdapterDisplayMode(Device.m_uAdapter, &mode)))
return E_FAIL;
Params.BackBufferFormat = mode.Format;
if(FAILED(m_pD3D->CheckDeviceType(Device.m_uAdapter,Device.m_DevType,Params.BackBufferFormat, Params.BackBufferFormat, FALSE)))
return E_FAIL;
1.1.4. 放棄一個設備
微軟的D3D設備可以處在操作狀態或放棄狀態;操作狀態是設備的正常的狀態,設備按照預期來運行和表現所有的粉刷。當一個事件發生時,設備會轉換到放棄狀態,例如在滿屏模式下丟失鍵盤焦點,導致粉刷變成不可能。丟失狀態是所有粉刷操作平靜失敗的表現,這意味著粉刷操作不能返回成功代碼,即使是在粉刷操作失敗的情況下(The lost state is characterized by the silent failure of all rendering operations, which means that the rendering methods can return success codes even though the rendering operations fail);在這種情況下,IDirect3DDevice9::Presenter將返回錯誤代碼D3DERR_DEVICELOST。
根據設計,能導致設備變成丟失狀態的全套場景是不確定的,某些典型的例子包括焦點丟失,例如當用戶按下ALT+TAB或一個系統對話框被初始化時,設備也可以由於電源管理事件而丟失,或者當另外一個程序採用滿屏操作時;另外任何來自IDirect3DDevice9::Reset的失敗都將導致設備進入丟失狀態。
所有繼承自IUnknow的方法都可保證在設備丟失之後正常工作。在設備都是之後,每個函數通常有三個選擇:
1. 失敗並返回D3DERR_DEVICELOST;這意味著程序需要認識丟失的設備,以便於程序能標識那些不能按照預期發生的事情。
2. 安靜地失敗,返回S_OK或者其他的返回值-如果一個函數安靜地失敗,程序通常不能區分是成功的結果還是安靜地失敗
3. 函數返回一個返回值。
1.1.4.1. 對丟失設備的響應一個丟失的設備在它已經被復位以後必須重創建資源(包括顯存資源)。如果一個設備丟失了,程序查詢設備來看是否能夠恢復到操作狀態;如果不能,程序等待,直到設備可以被恢復。
如果設備可以被恢復,程序通過銷毀所有的顯存資源和任何交換鏈來准備設備,然後,程序調用IDirect3DDeivice9::Reset方法;方法Reset是設備丟失之後唯一有效的方法,也是程序唯一用來改變丟失設備到操作狀態的方法。IDirect3DDevice9::Reset只有在程序釋放了所有以D3DPOOL_DEFAULT方式分配的資源時才會失敗,這些資源包括由IDirect3DDevice9::CreateRenderTarget和IDirect3DDevice9::CreateDepthStencilSurface方法創建的資源。
大部分情況,頻繁的調用D3D並不會返回設備已經丟失的信息。程序能繼續調用粉刷方法,例如:IDirect3DDevice9::DrawPrimitive,如果沒有接收到設備丟失的通知;而在內部,這些操作被拋棄直到設備被復位為可操作狀態。
程序可以通過查詢IDirect3DDevice9::TestCooperativeLevel方法來決定遇到丟失設備的時候如何做。
1.1.4.2. 鎖定操作在D3D內部,其做了充分的工作保證設備丟失之後鎖定操作能成功;然而,它不保證在鎖定操作過程中顯存資源數據是准確的。它確保不返回錯誤代碼,這允許程序在鎖定操作過程中是可寫的如果不關心設備丟失。
1.1.4.3. 資源資源能消耗顯存,因為一個丟失設備從顯卡擁有的顯存斷開,在設備丟失時不可能擔保分配顯存。結果所有資源創建方法都被實現為成功返回D3D_OK,但實際上僅僅分配虛擬系統內存;因為任何顯存資源必須在設備調整大小的之前被銷毀,沒有過量分配顯存的問題。這些虛擬的表面允許鎖定和復制操作看起來運行的很正常,直到程序調用IDirect3DDevice9::Present和發現設備已經丟失了。
所有顯存必須在設備從丟失狀態被復位為操作狀態之前釋放;這意味著程序應該釋放任何通過IDirect3DDevice9::CreateAdditionalSwapChain創建的交換鏈和任何放在D3DPOOL_DEFAULT內存類中的資源,其他狀態數據會在轉換到操作狀態時自動被銷毀。
開發一個單響應設備丟失編碼途徑是值得鼓勵的;如果不同,這個編碼途徑很可能與設備啟動時初始化的編碼途徑相似。
1.1.4.4. 重新得到數據D3D允許程序允許程序驗證紋理並粉刷狀態,而不是通過IDirect3DDevice::ValidateDevice硬體來單向粉刷。這個方法通常在程序初始化的時候調用,如果設備丟失將返回D3DERR_DEVICELOST。
D3D也允許程序從顯存資源復制產生的和以前寫的圖像到永久系統內存資源,因為源圖像可能在任何時候丟失,D3D允許在設備都是的時候復制操作失敗。
關於非同步查詢,如果FLUSH標志被設置,IDirect3DQuery9::GetData返回D3DERR_DEVICELOST,為了指示IDirect3DQuery9::GetData永遠不會返回S_OK。
復制操作,IDirect3DDevice9::GetFontBufferData失敗並返回D3DERR_DEVICELOST,由於在設備丟失的時候沒有基本的表面。IDirect3DDevice9::CreateAdditionalSwapChain在設備的丟失的時候不能創建BACK緩沖區而失敗並返回D3DERR_DEVICELOST。這些情況是除IDirect3DDevice9::Present 、IDirect3DDevice9::TestCooperativeLevel和IDirect3DDevice9::Reset方法之外返回D3DERR_DEVICELOST的唯一情況。
1.1.4.5. 可編程陰影在微軟D3D 9.0中,Vertex Shader1_1和Pixel_Shader_1_X並不需要在復位之後重新創建,他們會被記住。在以前的DirectX版本中,丟失設備要求陰影也需要重新創建。
1.1.5. 判斷硬體支持
微軟D3D提供了下面的函數來判斷硬體的支持情況。
1. IDirect3D9::CheckDeviceFormat
用來判斷一個表面格式是是否可以用作紋理,一個格式是否能用作紋理和粉刷對象或者一個表面格式是否可以用作深度模板緩沖區。另外,這個方法被用來驗證深度緩沖區格式支持和深度模板緩沖區格式支持。
2. IDirect3D9::CheckDeviceType
用來驗證設備執行硬體加速的能力,一個設備能力來為表現構造交換鏈,或者一個粉刷當前顯示格式的設備能力。
3. IDirect3D9::CheckDpthStencilMatch
用來驗證一個深度模板緩沖區格式是否和一個粉刷目標格式相兼容。注意,在調用該方法之前,程序應該調用在深度模板和粉刷目標格式上都調用過IDirect3D9::CheckDeviceFormat方法。
1.1.6. 處理頂點數據
IDirect3DDevice9介面支持以軟體和硬體的方式的頂點處理。通常對於軟體和硬體頂點處理的設備能力是不同的;硬體能力是可邊的,依賴於顯示卡和驅動,而軟體呢能是固定的。
下面的標志用來控制HAL和引用設備的頂點處理行為。
l D3DCREATE_SOFTWARE_VERTEXPROCESSING
l D3DCREATE_HARDWARE_VERTEXPROCESSING
l D3DCREATE_MIXED_VERTEXPROCESSING
在調用IDirect3D9::CreateDevice時指定頂點處理行為標志之一,也可以指定混合模式,用來表示可以指定硬體和軟體頂點處理模式。在任何時候僅僅可以為一個設備設置一種頂點處理標志。注意,D3DCREATE_HARDWARE_VERTEXPROCESSING標志在創建虛設備(D3DCREATE_PUREDEVICE)的時候要求被設置。
為了避免在單個設備上的多重頂點處理,僅僅硬體頂點處理能力可以在運行時查詢,軟體頂點處理能力是固定的,在運行時不能查詢。
你能和D3DCAPS9的VerterProcessingCaps成員商討來決定設備的硬體處理能力,對於軟體頂點處理支持下面的能力:
l D3DVTXPCAPS的D3DVTXPCAPS_DIRECTIONALLLIGHTS成員
l D3DVTXPCAPS的D3DVTXPCAPS_LOCALVIEWER成員
l D3DVTXPCAPS的D3DVTXPCAPS_POSITIONALLIGHTS成員
l D3DVTXPCAPS的D3DVTXPCAPS_TEXGEN成員
l D3DVTXPCAPS的D3DVTXPCAPS_TWEENING成員
另外,下表列出了軟體頂點出來模式時D3DCAPS9成員的設置值:
成員
軟體頂點處理能力
MaxActiveLights
無限制
MaxUserClipPlanes
6
MaxVertexBlendMatrices
4
MaxStreams
16
MaxVertexIndex
0xFFFFFFFF
軟體頂點處理提供一系列頂點處理能力,包括一些極大數量的光和可編程頂點陰影完全支持。你能夠在使用HAL設備的任何時候在軟體和硬體頂點處理之間切換,唯一同時支持硬體和軟體頂點處理的設備類型。唯一要求是用做軟體頂點處理的頂點緩沖區必須被分配在系統內存中。
看到上面的理論後,你只要再做以下幾步:
1到驅動大全下你的最新顯卡驅動;2重裝它3重新裝新版軟體4如果還不行要查DX3D是否正常。