Эквиваленты типов данных size_t, void * и hbitmap в MIDL - PullRequest
0 голосов
/ 20 сентября 2011

Какие типы данных MIDL следует использовать для объявления параметров метода интерфейса типов данных C ++, таких как size_t, void*, HBITMAP и других типов дескрипторов winapi (HANDLE, HFONT и т. Д.)?

1 Ответ

2 голосов
/ 20 сентября 2011

size_t определяется реализацией, но с использованием CRT в Visual Studio это 32-разрядное целое число без знака при компиляции для 32-разрядных архитектур и 64-разрядное целое число без знака при компиляции для 64-разрядных архитектур. Вы захотите использовать unsigned __int3264, что составляет 32 бита в 32-битной архитектуре и 64 бита в 64-битной архитектуре.

void* - это еще один тип, зависящий от платформы. MIDL обеспечивает тип void*, но это всего лишь 32-битный указатель, независимо от целевого размера адреса, я считаю. Вместо этого вы можете использовать тип unsigned __int3264.

MIDL предоставляет типы с такими же именами, что и различные типы дескрипторов, хотя я не уверен, включены ли все типы дескрипторов; Я знаю HBITMAP, по крайней мере.

...