簡體   English   中英

.Net COM 與 32 位和 64 位平台互操作

[英].Net COM interop with 32 and 64 bit platforms

我正在使用第三方 COM 組件,供應商提供了 32 位和 64 位版本。 我想為“任何 cpu”構建我的 .NET 應用程序,如果進程是 32 位,則讓它調用 32 位 COM 組件,或者在 64 位模式下調用 64 位組件。

誰能指出我任何有用的資源來描述這個過程是如何工作的? 如果我注冊了正確的 COM 組件,它會不會發生魔法?

謝謝

安迪

32 位進程將加載 32 位 COM 服務器,64 位進程將加載 64 位 COM 服務器。 換句話說,只要你在目標機器上安裝了正確的 COM 服務器,你應該什么都不做才能讓它正常工作。

使用 32 位 COM dll。

如果您的應用程序類型是 Web,請參考您的 32 位 COM dll 並部署應用程序。 在 IIS 中設置“啟用 32 位應用程序 = TRUE”。

在 Windows 應用程序中,只需參考 32 位 dll 並使用“任何 CPU”構建應用程序。

AFAICT COM 是(一直是)二進制標准接口。

它的定義將不依賴於字節順序、字長或其他依賴於體系結構的細節。 完全有可能(對於簡單的接口,甚至沒有那么困難)編寫一個 COM 組件,該組件符合普通 C 代碼中的所有內容。

某些人(Don Box、Craig Brockschmidt,我覺得我不知何故忘記了最著名的一個……糟糕的記憶)以撰寫有關 COM 如何以這種方式實現的書籍而聞名。

如果您需要任何確認,您可以確認 MIDL 的 output 不依賴於您的平台特性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM