首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用C进行DirectX编程?

用C进行DirectX编程?
EN

Stack Overflow用户
提问于 2011-01-15 05:20:16
回答 5查看 12.8K关注 0票数 9

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

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-15 05:21:47

是的,这是可能的。DirectX公开了一个COM接口,而C能够使用它们。不过,这不会是一条充满乐趣的船!

票数 11
EN

Stack Overflow用户

发布于 2011-11-01 16:28:46

Open Watcom C/C++编译器附带了C++和C语言的DirectX示例应用程序,两者都可以工作。在OW 1.9中,它们分别位于WATCOM\samples\directx\cppWATCOM\samples\directx\c之下。

下面是C++中的代码:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
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做任何特殊的事情,因为似乎已经定义了足够多的宏,你可以直接使用。

票数 11
EN

Stack Overflow用户

发布于 2011-01-15 05:31:09

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4696079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档