Мне нужно интегрировать некоторый старый 32-разрядный код, для которого у меня нет исходного кода, в проект таким образом, что его можно вызывать из 64-разрядной сборки .NET. Исходный код реализован как 32-битный COM-объект в DLL. Windows не разрешает прямые вызовы от 64 до 32-битных объектов, поэтому я ищу вдохновение в том, как справиться с этой ситуацией.64 до 32 бит Interop - как?
Как можно получить доступ к устаревшему 32-битовому COM-объекту из 64-разрядной сборки .NET?
UPDATE: Мы обнаружили, что COM-компонент сам по себе является оберткой вокруг некоторого ANSI C, который мы используем для исходного источника. Мы смогли скомпилировать это в Visual Studio как родную 64-разрядную dll и импортировать ее в .NET - извините за то, что переместили стойки ворот!
Комментарий, поскольку я этого не сделал, но вам нужно убедиться, что вы запускаете COM-объект как внепроцессный сервер. Если вы загрузите его как in-process, он будет работать как 64-разрядный, что не удастся. –