c++ - MIDL 中的 size_t、void* 和 hbitmap 数据类型等效项

标签 c++ windows midl

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

最佳答案

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/

相关文章:

c++ - Boost::uBLAS 与 Eigen

c - 如何将 32 位 NTDLL 结构转换为 64 位结构?

python - 如何从python 2中的字符串中获取子字符串

c++ - 如何在 COM 类型库中创建模块定义的函数

c++ - 用于计算乘数和除数值的优化算法

c++ - 为什么 std::sort 假定 std::vector< std::vector<int>> 默认为 std::vector,从而产生错误的结果?

c++ - 如何在dev c++中链接mysql?

com - 什么是 stdole2.tlb

c++ - [MIDL]如何在idl文件中使用c/c++头文件中声明的接口(interface)?

c++ - 将字符串(字符)发送到事件窗口