DirectInput的協調級別。

2021-04-07 07:43:20 字數 741 閱讀 6830

昨天就開始看directinput的第乙個tutorial了,一直到今天才調出這個簡單的程式。其間遇到的問題對於高手來說根本不叫問題,但是對我,卻花費了乙個上午和乙個晚上。

先是一些編譯錯誤,在註冊和建立視窗的時候出現了這樣的錯誤:

cannot convert parameter 3 from 'const char [12]' to 'lpcwstr' types pointed to are unrelated; conversion requires reinterpret_cast, c-style cast or function-style cast。

後來參考dx文件裡面乙個win32basic的例子,將字串前面加上l就可以了。具體為什麼我不懂,看vs的幫助也沒看明白,英文太差了。

然後是鏈結時的錯誤c_dfdikeyboard等都無法識別,對比其它的sample以後知道需要在專案屬性的鏈結-》輸入-》依賴項裡新增dxguid.lib dinput.lib.

最後乙個是執行時錯誤,當執行到國hr=g_lpdidevice->acquire()時訪問被拒絕,hr=e_accessdenied,這個問題困擾了很久,最後在msdn中查到,當設定協調級別為foreground時,如果視窗不在焦點,獲取裝置使用權就會失敗,更改為setcooperativelevel(g_hwnd,discl_background|discl_nonexclusive)後問題解決,如果要使用foreground的話,則需要處理視窗的得到焦點與獲取焦點的訊息,動態的獲取與釋放裝置使用權。

Kevin的DirectInput簡明教程

使用directinput可分為以下5個步驟 1.獲得directinput介面idirectinput8,可通過下面的全域性函式獲得 hresult directinput8create hinstance hinst,應用程式的handle dword dwversion,directinput...

3者的協調

對於遊戲的熟悉程度,估計沒有哪個開發人員會比遊戲策劃更清楚了。大到遊戲框架,小到介面熱鍵,一點一滴都需要策劃人員進行詳細的描述和設計,也只有策劃才能對遊戲的實現情況進行全面的把握。所以一旦策劃和其他開發人員發生溝通上的障礙,整個專案的進展就會受到極大的影響 如果策劃能夠協調好各部分的工作,那麼專案進...

程序間的協調通訊

掌握程序的概念 程序間通訊的基本原理 整合間通訊的主要型別和各自的特點。實驗內容 在linux平台上實現1個父程序 2個子程序,利用管道和共享記憶體實現兩個子程序之間資料快速傳送。1 建立乙個程序,再建立一對管道 一塊共享記憶體 大於64kb 2 通過fork 函式生成2個子程序 3 除錯程式,確定...