Эквиваленты типов данных size_t, void* и hbitmap в MIDL
Какие типы данных MIDL следует использовать для объявления параметров метода интерфейса типов данных C++, таких как size_t
, void*
, HBITMAP
и другие типы ручек winapi (HANDLE
, HFONT
, так далее.)?
1 ответ
size_t
определяется реализацией, но с использованием CRT в Visual Studio это 32-разрядное целое число без знака при компиляции для 32-разрядных архитектур и 64-разрядное целое число без знака при компиляции для 64-разрядных архитектур. Вы хотите использовать unsigned __int3264
, что составляет 32 бита в 32-битной архитектуре и 64 бита в 64-битной архитектуре.
void*
еще один платформо-зависимый тип. MIDL обеспечивает void*
типа, но это всего лишь 32-битный указатель, независимо от целевого размера адреса, я считаю. Вы можете использовать unsigned __int3264
тип, а не.
MIDL предоставляет типы с такими же именами, что и различные типы дескрипторов, хотя я не уверен, включены ли все типы дескрипторов; я знаю HBITMAP
есть, по крайней мере.