0

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

4

1 回答 1

2

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

void*是另一种平台相关类型。MIDL 提供了一种void*类型,但我相信它只是一个 32 位指针,无论目标地址大小如何。您可能想改用该unsigned __int3264类型。

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

于 2011-09-19T20:49:14.423 回答