.Net COM-взаимодействие с 32 и 64-битными платформами - PullRequest
0 голосов
/ 08 июня 2011

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

Может кто-нибудь указать мне накакие-нибудь полезные ресурсы, чтобы описать, как этот процесс работает?случается ли это по волшебству, если я регистрирую правильный компонент COM?

Спасибо

Andy

Ответы [ 4 ]

1 голос
/ 08 июня 2011
1 голос
/ 08 июня 2011

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

0 голосов
/ 29 июля 2013

Использовать 32-битную COM dll.

Если тип вашего приложения - Web, обратитесь к 32-битному COM dll и разверните приложение. В IIS Set 'Enable 32bit Application = TRUE.

В приложении Windows, просто обратитесь к 32-битной DLL и создайте приложение с «Любой процессор».

0 голосов
/ 08 июня 2011

AFAICT COM (всегда был) двоичным стандартным интерфейсом.

Его определение не будет зависеть от порядка следования байтов, размера слова или других деталей, зависящих от архитектуры.Вполне возможно (и даже не так сложно, для простых интерфейсов) кодировать COM-компонент, который соответствует всем этим в простом коде C.

Определенные лица (Дон Бокс, Крейг Брокшмидт, у меня есть чувствоЯ почему-то забываю о самом известном ... плохой памяти), который был довольно знаменит тем, что писал книги о том, как COM реализован именно таким образом.

Если вам нужно какое-либо подтверждение, вы можете подтвердить, чтовывод MIDL не зависит от характеристик вашей платформы

...