powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / x32-x64 маршалинг HDC
6 сообщений из 6, страница 1 из 1
x32-x64 маршалинг HDC
    #40027026
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть идея/необходимость сделать 64 битный out-process COM сервер, в который 32 битный клиент будет передавать некий HDC, а сервер будет на нем рисовать картинку.

Вопрос номер раз: это реализуемо? MSDN пишет такThe following OLE handles are also defined with the [wire_marshal] attribute, but only as handles within a computer since they cannot be used in remote procedure calls to other computers at this time: HWND, HMENU, HACCEL, HDC, HFONT, HICON, HBRUSH. Import the objidl.idl file into your IDL file and link to ole32.lib at build time to use these handles in interprocess communication on a single computer.Т.е. как бы должно работать.

Вопрос номер два: а как мне определить параметр HDC? Когда пишу в idl так
Код: plaintext
1.
HRESULT __stdcall Draw([in] HDC hDC);

то потом при импорте tlibimp превращает тип HDC в record длиной 32 или 64 бита в зависимости от платформы

С уважением, Vasilisk
...
Рейтинг: 0 / 0
x32-x64 маршалинг HDC
    #40027036
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Быстродействие важно? Если не особо, я бы гонял честные битмапы в бинарном виде по сокетам/пайпам и не связывался с этими черными ящиками
...
Рейтинг: 0 / 0
x32-x64 маршалинг HDC
    #40027175
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
я бы гонял честные битмапы
Это один из вариантов решения. Пока хочется гонять HDC
...
Рейтинг: 0 / 0
x32-x64 маршалинг HDC
    #40027211
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://msdn.microsoft.com/en-us/library/windows/desktop/aa384203(v=vs.85).aspx

автор 64-bit versions of Windows use 32-bit handles for interoperability . When sharing a handle between 32-bit and 64-bit applications, only the lower 32 bits are significant, so it is safe to truncate the handle (when passing it from 64-bit to 32-bit) or sign-extend the handle (when passing it from 32-bit to 64-bit). Handles that can be shared include handles to user objects such as windows (HWND), handles to GDI objects such as pens and brushes (HBRUSH and HPEN), and handles to named objects such as mutexes, semaphores, and file handles.
Ы?
...
Рейтинг: 0 / 0
x32-x64 маршалинг HDC
    #40027587
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Fr0sT-Brutal
я бы гонял честные битмапы
Это один из вариантов решения. Пока хочется гонять HDC
битмапы можно и не гонять
они прекрасно рашариваются, если на одном ПК
...
Рейтинг: 0 / 0
x32-x64 маршалинг HDC
    #40027637
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Ы?
Уже хорошо.
kealon(Ruslan)
битмапы можно и не гонять
Это уже детали реализации
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / x32-x64 маршалинг HDC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]