簡體   English   中英

通過本機代碼(通過com)管理的dll。它是進程內還是進程外com服務器?

[英]managed dll in native code (via com) .is it in process or out process com server?

我需要在本機代碼(c ++)中使用托管動態鏈接庫(c#)。我發現這里的解決方案是。 http://support.microsoft.com/kb/828736 )。

但是困擾我的是

1)通過com在本機代碼中使用的托管動態鏈接庫是否充當流程com服務器? 如果是,那怎么可能?

2)如果否,那么動態鏈接庫如何在不被可執行文件攜帶的情況下充當進程com服務器。

這是一個進程內配置。 與直接使用P / Invoke機制相比,它“不可能”得多。 當您運行regasm它將對注冊表進行必要的更改,以便客戶端調用CoCreateInstance() COM知道它需要從相應的.NET程序集中P /調用函數。

  1. COM知道如何啟動托管DLL的CLR,因此,它可以以適當的位數(即AnyCPU或適當的32/64位)運行的托管DLL起作用。
  2. 對於跨位DLL,我相信 CLR知道如何啟動DllHost.exe並在進程外運行托管DLL。 當然會慢一些。

暫無
暫無

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

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