在C中使用DirectX编程?

在过去,我用C ++编程语言创建了DirectX应用程序,但是,我想知道是否可以使用C编程语言来完成这项工作。

谢谢。

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

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做任何特殊的事情,因为似乎有足够的宏定义你可以使用。

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

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

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

我在这里找到了一个教程 ,处理似乎是C的directX(其中一些是付费但前几个基本的例子是免费的)。