过去,我曾用C++编程语言创建过DirectX应用程序,但是,我想知道是否可以使用C编程语言来实现这一点。
谢谢。
发布于 2011-01-15 05:21:47
是的,这是可能的。DirectX公开了一个COM接口,而C能够使用它们。不过,这不会是一条充满乐趣的船!
发布于 2011-11-01 16:28:46
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做任何特殊的事情,因为似乎已经定义了足够多的宏,你可以直接使用。
发布于 2011-01-15 05:31:09
您可以在C中使用DirectX。它具有特定的宏来简化COM接口的使用。但是,使用C++要容易得多。
https://stackoverflow.com/questions/4696079
复制相似问题