用宏调用DirectX COM的方法(翻译)

博客介绍了微软DirectX接口为方法定义宏,以简化应用程序使用。宏分为C和C++版本,使用C++宏需定义__cplusplus。展示了d3d.h头文件中IDirect3D8::GetAdapterIdentifier方法的宏定义,还说明了使用宏的步骤及返回值类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用宏调用DirectX COM 的方法

   很多微软的DirectX接口为每一种方法定义了一个宏,这样在你的应用程序中使用这些方法会更简单一些。你会发现这些宏定义在接口声明的头文件中。这些宏被设计成在c中的宏和在c++中的宏。如果你想使用在c++中的宏,你必须定义__cplusplus.否则你将使用在c中的宏。宏的语法在两种语言当中是相同的,但是在头文件中它们是分开定义的,以便适当的对呼叫约定进行扩充。

   例如:下面的代码段从d3d.h头文件中显示了为IDirect3D8::GetAdapterIdentifier 方法定义的c宏和c++宏。

   #if !defined(__cplusplus) || defined(CINTERFACE)

   ...
   #define IDirect3D8_GetAdapterIdentifier(p,a,b,c)    (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
   ...
   #else
   ...
   #define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
   ...
   #endif


   使用这些宏,你首先必须得到相关接口的指针。宏的第一个参数必须设置为这个指针,余下的参数对应着方法中的参数。宏的返回值是一个HRESULT类型的,这个值就是宏所对应的方法的返回值。下面的代码段用了一个宏来呼叫IDirect3D8::GetAdapter(dentifier方法,pD3D是指向IDirect3D8接口的指针。

   hr = IDirect3D8_GetAdapterIdentifier(pD3D,
                                     Adapter,
                                     dwFlags,
                                     pIdentifier);

注: 由于翻译水平有限,错误在所难免。如发现翻译的不对的地方还请路上的朋友指正,谢谢

可以任意转载。

译者: closeall

 

2005.09.05 译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值