[問題] 編譯舊版DirectX程式的Device問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
DirectX
問題(Question):
在編譯一個比較古老的DirectX程式時
我去抓了比較舊版的DirectX SDK來安裝 (2010 Feb)
編譯可以過,連接也可以過
但是一執行就會出現錯誤訊息
分兩個錯誤訊息窗出來
第一個是:
The D3D device has a non-zero referecne count,
meaning some objects were not released.
關掉之後會出現第二個
第二個則是:
Failed creating Direct3D device objects.
我第一個動作是上google去查這兩個錯誤訊息
結果並不是查不到,而是找到很多解答但是都沒有發揮效果
有的是遊戲討論文章,說要更新顯示卡驅動或是換一張比較好的顯示卡
但是這點我可以直接排除掉
顯卡驅動到最新而且顯卡也很新(GTX670)
另外一個方向則是更新DirectX
上網查了一下,想試試看使用新版的SDK
才發現到DX SDK已經被合併到Windows SDK去了
DirectX SDK最新只到2010年就沒有了
改安裝windows SDK
然後發現舊版的程式有很多include檔名都要改
例如"d3dx9.h"要改成"d3d9.h"
但是最令人崩潰的地方在於有的head檔並不是更名,而是整個消失了!
直接註解掉也不行,肯定需要更改
這裡想請教對於DirectX比較熟悉的前輩
對於比較舊的DirectX程式應該要怎麼編譯?
我目前想到的方向有兩個
1 用新版SDK,但是程式要大改
2 用舊版SDK,但是目前程式跑不起來,會出現最前面的錯誤訊息
另外,我還做了一個測試
把舊版DirectX SDK裡面的dll刪除
看看程式執行起來是否會出現找不到dll的錯誤訊息
結果卻是不會發生找不到dll,只出現最前面的device錯誤
所以我猜系統裡面應該哪裡也有這些dll檔
所以我是用安裝的SDK編譯與連結,但是用不同版本的dll執行
可是已經搜索了整個C:
並沒有發現到其他DX dll檔案
windows系統會去尋找windows, system32, PATH這些地方是否有dll檔
但是我沒有找到它們,完全無法理解程式是怎麼被執行起來的
就連是否執行到錯誤版本的dll也不確定
但是感覺上應該是這樣
有在VC專案設定dll的資料夾到DirectX SDK的dll資料夾內
但是感覺沒有效果,似乎有個優先權更高的設定不知道在系統哪裡
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.210.62
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1401110546.A.200.html
推
05/26 22:13, , 1F
05/26 22:13, 1F
→
05/26 22:51, , 2F
05/26 22:51, 2F
→
05/26 22:52, , 3F
05/26 22:52, 3F
推
05/26 23:48, , 4F
05/26 23:48, 4F
→
05/26 23:50, , 5F
05/26 23:50, 5F
→
05/26 23:51, , 6F
05/26 23:51, 6F
→
05/26 23:52, , 7F
05/26 23:52, 7F
→
05/26 23:52, , 8F
05/26 23:52, 8F
→
05/27 13:51, , 9F
05/27 13:51, 9F
→
05/27 13:53, , 10F
05/27 13:53, 10F
→
05/27 14:03, , 11F
05/27 14:03, 11F
→
05/27 14:03, , 12F
05/27 14:03, 12F
→
05/27 15:02, , 13F
05/27 15:02, 13F
→
05/27 15:03, , 14F
05/27 15:03, 14F
→
05/27 15:17, , 15F
05/27 15:17, 15F
→
05/27 15:45, , 16F
05/27 15:45, 16F
→
05/27 15:47, , 17F
05/27 15:47, 17F
→
05/27 15:48, , 18F
05/27 15:48, 18F
→
05/27 16:01, , 19F
05/27 16:01, 19F
→
05/27 16:02, , 20F
05/27 16:02, 20F
→
05/27 16:12, , 21F
05/27 16:12, 21F
→
05/27 16:13, , 22F
05/27 16:13, 22F
→
05/27 16:13, , 23F
05/27 16:13, 23F
→
05/27 21:29, , 24F
05/27 21:29, 24F
→
05/28 00:19, , 25F
05/28 00:19, 25F
→
05/28 00:20, , 26F
05/28 00:20, 26F
→
05/28 18:49, , 27F
05/28 18:49, 27F
→
05/28 18:49, , 28F
05/28 18:49, 28F
→
05/28 18:50, , 29F
05/28 18:50, 29F
→
05/28 18:51, , 30F
05/28 18:51, 30F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):