Вопрос

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top