com-interop

    1熱度

    2回答

    我們的程序使用一個out-proc COM服務器,並在其接口上創建數千個調用。這需要非常長的時間 - 大約5萬個電話一分鐘。 COM組件供應商表示,這些調用本身非常快,問題在於與out-proc調用相關的開銷。 在這種情況下是否有任何可以調整的方法來減少開銷?

    11熱度

    2回答

    ,我發現這個在Scott Hanselmans Blog 某些信息是否有人確切地知道這是什麼意思? 這僅適用於Office主互操作程序集,還是我也可以使用它來嵌入我的Redemption庫或其他COM庫?

    1熱度

    1回答

    有點奇怪的問題,可能是大多數人想做的事情的後退,但我試圖解決遺留COM問題。 我有兩個組件,它們實際上都是.NET程序集,但出於歷史原因,一個是將另一個加載爲COM對象(程序集爲COM Interop註冊)。這是一個插件體系結構,其插件由COM ProgID標識,所以這是我獲得加載插件程序集的唯一信息。 一種技術我已經試過是: var objType = Type.GetTypeFromProgI

    3熱度

    1回答

    原來有一個HKCR \ Interface子樹,我可以註冊我新引入的COM接口。當我得到它,我需要它在兩種情況下: 如果我想啓用編組 - 那麼我可以註冊代理/存根有如果我要發表我的組件的詳細信息 ,以便其他開發可以查找接口ID並在HKCR \ Interface {InterfaceId} \ Default值下找到它的人類可讀名稱。 我還需要在HKCR \ Interface中註冊我的接口嗎?

    5熱度

    2回答

    審查我們的代碼,我發現在的.idl文件中的一個奇怪的定義: [ object, uuid(uuidhere), dual, nonextensible, oleautomation, hidden ] interface IOurInterface : IUnknown { //methods here }; 如何接口

    1熱度

    1回答

    我試圖通過COM暴露我們的圖書館,但似乎是比實際問題更多的工具。無論我如何寫COM暴露類,我都會收到警告:「XXX.dll不包含任何可以註冊爲COM互操作的類型」(將項目標記爲在項目屬性中註冊COM互操作)。即使下面的簡單類(如在裝配體中唯一的類,簽名並標註標記有ComVisible特性(誤))仍警告仍然存在: [Guid("77699130-7D58-4d29-BE18-385871B000D1

    1熱度

    1回答

    我有一個C#程序集,用作非託管C++應用程序使用的進程內COM服務器。程序集消耗了一個不會改變的web服務,所以不需要更新web服務代理類。這就是爲什麼代理類被創建一次並且Reference.cs文件被簡單地放入存儲庫並且僅從那裏編譯。 問題是,默認情況下,web服務代理類是公共的,因此暴露給COM。這膨脹了typelib和污染註冊表。改變內部可見性打破了程序集,因此這些實體需要保持公開,但不需要

    2熱度

    1回答

    我有一個32位本地C++ ATL進程內COM服務器,它依賴於一大組傳統的32位庫。我需要從64位應用程序中使用它,並儘可能進行最小的更改。 一種選擇是將它放到COM +應用程序中。什麼是其他簡單的選擇?

    0熱度

    1回答

    我目前正在維護一個我們幾年前外包的軟件,這個軟件記錄不完整。這件作品是一個供第三方應用程序使用的COM服務器,以及一個可以進行所有必要部署的安裝程序。 這個核心編譯爲32位DLL,並且意味着從32位應用程序中使用。還有一個shim被編譯爲64位的DLL,用於從64位應用程序中使用。 Shim調用CoCreateInstance()來實例化核心並將呼叫重定向到核心。核心依賴於一大組其他32位庫。 3

    3熱度

    3回答

    我試圖強制現有的本地C + + ATL進程內COM服務器到一個單獨的進程。我希望DCOM能夠在不更改COM服務器的情況下爲我做到這一點。 我開始使用通常的註冊表設置 - 我有一個HKCR \ CLSID {classId}條目和一個InProcServer32鍵,指定了.dll文件的路徑。 我生成了一個應用程序ID(GUID)並將它添加到這裏和那裏。具體來說,我在HKCR \ CLSID {cla