我应该使用什么 MIDL 数据类型来声明 C++ 数据类型的接口(interface)方法参数,如 size_t
、void*
、HBITMAP
和其他类型winapi 句柄(HANDLE
、HFONT
等)?
最佳答案
size_t
是实现定义的,但使用 Visual Studio 的 CRT,在为 32 位架构编译时它是一个无符号的 32 位整数,在为 64 位架构编译时它是一个无符号的 64 位整数。您需要使用 unsigned __int3264
,它在 32 位架构上是 32 位,在 64 位架构上是 64 位。
void*
是另一种依赖于平台的类型。 MIDL 提供了 void*
类型,但我相信它只是一个 32 位指针,与目标地址大小无关。您可能想改用 unsigned __int3264
类型。
MIDL 提供与各种句柄类型同名的类型,但我不确定是否包括所有句柄类型;我知道至少 HBITMAP
是。
关于c++ - MIDL 中的 size_t、void* 和 hbitmap 数据类型等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477015/