2008-10-29 3 views
7

Я пытаюсь получить окончательный ответ о том, как COM ведет себя на машине x64. Использует ли Windows обычное соглашение о вызове x64 при отправке вызовов на COM-интерфейсы на компьютерах x64 (при условии, что реализация COM составляет 64 бита)? В частности, я динамически генерирую свои записи vtbl, чтобы указать на кусок сборки, динамически загружаемый во время выполнения. Эта сборка должна знать, как правильно получать параметры от тех, кто ее вызывает. Таким образом, я хотел бы знать, будет ли COM настраивать вызов моей сборки, используя стандартное соглашение о вызове x64 (в значительной степени fastcall).Соглашение о вызове COM на x64

ответ

3

Соглашение о вызове COM - это то, что определяет макросы STDMETHOD/STDMETHODIMP (и их варианты). На IA-32 для большинства из них stdcall; Я не знаю, что используется на x86-64 (у меня установлен только 32-битный кросс-компилятор).

+0

stdmethod не решает ничего при компиляции для amd64. Поэтому я предполагаю, что соглашение о вызове COM на x64 является обычным соглашением о вызове x64, даже когда окна отправляют вызов? – Zach 2008-10-30 01:00:36

Смежные вопросы