MIDL中的size_t,void *和hbitmap数据类型等价物

时间:2011-09-19 20:37:01

标签: c++ windows midl

我应该使用哪些MIDL数据类型来声明C ++数据类型的接口方法参数,例如size_tvoid*HBITMAP和其他类型的winapi句柄(HANDLEHFONT等等?)

1 个答案:

答案 0 :(得分:2)

size_t是实现定义的,但是使用Visual Studio的CRT,它在编译32位体系结构时是无符号的32位整数,在编译64位体系结构时是无符号的64位整数。您将需要使用unsigned __int3264,它在32位体系结构上为32位,在64位体系结构上为64位。

void*是另一种依赖于平台的类型。 MIDL提供void*类型,但不管目标地址大小如何,它只是一个32位指针,我相信。您可能希望使用unsigned __int3264类型。

MIDL提供的类型与各种句柄类型具有相同的名称,但我不确定是否包含所有句柄类型;我知道HBITMAP至少是这样。