回答
是的,這是可能的。 DirectX公開一個COM接口,C能夠使用它們。雖然這不會是一船樂趣!
我試過了。你習慣了,但它仍然不舒服或容易。 – dreamlax 2011-01-14 21:23:21
這種方式也是可能的,但正如大衛所說,這根本不會有趣。如果你嘗試採取這種方式,祝你好運。 – 2011-01-14 21:23:39
我認爲DirectX庫有一些僅用於C++的組件(它已經有一段時間了,因爲我已經使用了它,從上次我記得它包含類)。不妨讓你的生活更輕鬆一些,並用C++來完成。
您可以在C中使用DirectX。它具有特定的宏來簡化COM接口的使用。但是,使用C++要容易得多。
Open Watcom C/C++編譯器在C++和C中都附帶了DirectX示例應用程序。它們分別在OW 1.9中的WATCOM\samples\directx\cpp
和WATCOM\samples\directx\c
之下。
這是什麼代碼看起來像在C++:
hr = d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dcaps9);
hr = d3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);
hr = d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, game_window, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &d3dpp, &d3d_dev);
而且在C:
hr = IDirect3D9_GetDeviceCaps(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dcaps9);
hr = IDirect3D9_GetAdapterDisplayMode(d3d, D3DADAPTER_DEFAULT, &d3ddm);
hr = IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, game_window, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &d3dpp, &d3d_dev);
你不需要做什麼特別在C COM,因爲似乎足夠的宏定義了你可以使用。
- 1. directx程序編程
- 2. directx教程C++
- 3. C++/DirectX'關卡編輯器'
- 4. Visual C++ DirectX編譯錯誤
- 5. DirectX/C++ 3D引擎編程:立即瞭解還是等待DirectX 12?
- 6. C++中的DirectX 10 HUD
- 7. C#的DirectX性能
- 8. DirectX和C++
- 9. 以編程方式創建紋理DirectX
- 10. 用c屏幕抓取directx程序#
- 11. C#Directx應用程序崩潰版本
- 12. 「DirectX第2版編程角色扮演遊戲」和更新的DirectX api
- 13. C++ DirectX頭文件
- 14. Extern「C」錯誤DirectX
- 15. UWP開發C++,C#,DirectX
- 16. C#的DirectX精靈起源
- 17. C++ Directx的哪個版本?
- 18. C#的DirectX輸入問題
- 19. C#簡單的DirectX控制
- 20. 繪圖與C++的DirectX
- 21. C++和DirectX的 - 幾何題
- 22. 如何使用DirectX在C#中創建視頻編輯器?
- 23. C++中的directX capture渲染器
- 24. DirectX 11中的多個RenderTarget(C++)
- 25. C++中的DirectX Back Buffer代碼
- 26. C編程中的2D遊戲編程
- 27. 在C編程中的背景編程
- 28. IronRuby中的DirectX
- 29. 部署使用DirectX程序集的C#應用程序
- 30. 如何在MinGW中編譯DirectX 11應用程序
是否存在僅限C的限制的原因? – 2011-01-14 22:04:18