2011-01-28 4 views
7

У меня есть 32-битный COM-сервер (и его исходный код) Источник генерирует сервер и 32-разрядный прокси-сервер. (Компилятор MIDL генерирует код прокси-сервера.)Как сгенерировать 64-битный COM-прокси

Я также хотел бы сделать 64-разрядный прокси, чтобы 64-разрядные программы могли разговаривать со своим 32-битным COM-сервером.

Как мне преобразовать 32-разрядный прокси в 64-разрядный прокси-сервер, который говорит о 32-битном процессе? Я предполагаю, что просто перекомпиляции с/D: _M_AMD64 недостаточно.

+0

Нет,/D недостаточно, вам действительно нужно использовать 64-битный компилятор. Добавьте конфигурацию платформы x64 для проекта PS. –

ответ

4

Прокси-код, сгенерированный компилятором MIDL, должен работать. Вам просто нужно построить 64-битную dll из этого кода.

Убедитесь, что ваши типы определены правильно. Удостоверьтесь, что вы избегаете таких типов, как UINT_PTR, которые не будут работать, когда 64-разрядный вызывающий абонент вызывает 32-разрядный сервер.