在C中使用DirectX编程?

问题描述 投票:5回答:5

在过去,我已经用C ++编程语言创建了DirectX应用程序,但是,我想知道是否可以使用C编程语言来实现。

谢谢。

c directx
5个回答
11
投票

对的,这是可能的。 DirectX公开COM接口,C能够使用它们。尽管如此,它不会是一大堆乐趣!


7
投票

Open Watcom C/C++编译器在C ++和C中都带有DirectX示例应用程序。在OW 1.9中,他们分别在WATCOM\samples\directx\cppWATCOM\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做任何特殊的事情,因为似乎有足够的宏定义你可以使用。


2
投票

您可以在C中使用DirectX。它具有特定的宏来简化COM接口的使用。但是,使用C ++要容易得多。


0
投票

我认为DirectX库只有一些C ++组件(自从我使用它以来已经有一段时间了,从最后我记得它包含类)。不妨让你的生活更轻松,用C ++做。


0
投票

这是可能的,但是因为你缺乏C ++提供的更高级别的功能,所以你自己也更难。

© www.soinside.com 2019 - 2024. All rights reserved.