在C中使用DirectX编程?

Fou*_*ouf 5 c directx

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

谢谢.

Dav*_*nan 11

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


Ale*_*nze 7

所述打开WATCOM C/C++编译器都带有在C++和C.两者工作的DirectX示例应用程序.他们正在WATCOM\samples\directx\cppWATCOM\samples\directx\c分别OW 1.9.

这就是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);
Run Code Online (Sandbox Code Playgroud)

而在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);
Run Code Online (Sandbox Code Playgroud)

你不需要在C中用COM做任何特殊的事情,因为似乎有足够的宏定义你可以使用.