size_t,void*和hbitmap数据类型等效物

发布于 2024-12-05 07:11:15 字数 166 浏览 0 评论 0原文

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

What MIDL data types should I use to declare interface method parameters of C++ data types like size_t, void*, HBITMAP and other types of winapi handles (HANDLE, HFONT, etc.)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲娇萝莉攻 2024-12-12 07:11:15

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

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

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

size_t is implementation defined, but using Visual Studio's CRT, it's an unsigned 32-bit integer when compiling for 32-bit architectures and an unsigned 64-bit integer when compiling for 64-bit architectures. You'll want to use unsigned __int3264, which is 32 bits on a 32-bit architecture and 64 bits on a 64-bit architecture.

void* is another platform dependent type. MIDL provides a void* type, but it's only a 32-bit pointer regardless of the targeted address size, I believe. You may want to use the unsigned __int3264 type, instead.

MIDL provides types with the same names as the various handle type, though I'm not sure if all handle types are included; I know HBITMAP is, at least.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文