com-interop

    0熱度

    1回答

    我在C#中定義了一個接口,它將在C#中實現,但是從非託管C++模塊調用爲COM對象。 我知道我想要/需要的C++ API的樣子,我怎麼會通過ODL定義它: //args is an array of BSTR e.g VT_ARRAY|VT_BSTR HRESULT DoMethod(/*[in]*/BSTR name, /*[in]*/VARIANT args); 我不知道如何在C#中設置

    2熱度

    1回答

    在C#中我聲明瞭一個接口,它將暴露給COM供C++使用。我們的規範說一個整數參數應該是[in]UINT uiVal。我在C#中使用了int,它被暴露爲long。 這不是什麼大不了的事,但我怎麼能強制馬歇爾UINT而非long?某些特定的.Net類型,還是我需要以某種方式向C#參數添加屬性?

    0熱度

    2回答

    我使用下面的msdn鏈接中的代碼,它在我的系統中完美地工作以獲取發件人電子郵件地址。但是,當我將相同的代碼部署到我們的一個開發服務器時,下面的代碼行無限期地掛起\無限制地凍結而沒有任何響應。追蹤之後,我認爲如果發送者對象的屬性被訪問,它永遠掛起。高速緩存交換模式在郵箱上「打開」,並在Outlook 2010中運行。我也從手動下載了Outlook的地址簿,但它不會幫助。我相信這不是一個代碼問題。有人

    1熱度

    1回答

    我正在C#中創建一個COM類,它將從非託管C++中調用。我想使用ThrowExceptionForHR,但我寧願不必硬編碼HRESULT數值。 我期待在某處會有一些常見HRESULT值的枚舉嗎? 換言之,我可以在哪裏找到映射到HRESULT值的名稱符號以傳遞到ThrowExceptionForHR? 更新: MS談論它在這個頁面:HRESULT Information in Managed Cod

    1熱度

    2回答

    當定義在C#COM類您通常有這樣的簽名: void Login(string user,string password) 的AUTOMAGIC COM互操作包裝意味着從C++調用時: 拋出一個異常被轉換到故障HRESULT 返回沒有東西轉換成回國S_OK 但是,如果要返回S_OK以外的成功代碼,該怎麼辦?如S_FALSE還是一些自定義的「成功,但...」的價值? 注意:我在C#中定義類,並想知

    0熱度

    1回答

    我用下面的函數來查找和替換文本: Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true }; Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents

    0熱度

    1回答

    建設項目時,我收到以下錯誤: "Cannot embed interop type 'Microsoft.Office.Core.MsoXXX' found in both assembly 'c:\Windows\assembly\GAC_MSIL\office\14.0.0.0__71e9bce111e9429c\OFFICE.DLL' and 'c:\myProject\lib\OFFICE

    1熱度

    2回答

    我想用COM Interop創建一個WCF服務,我需要傳遞複雜數據。最好是一組自定義類對象。我不知道如何實現這一點,缺乏體面的例子。 我只找到#2一個類似的問題在這裏 Calling C# From Unmanaged C++ Passing Or Returning "Complex" Types 然而,該解決方案是隻使用C++/CLI DLL代替,但這不是我的選擇。將靜態調用它的C++應用程序

    1熱度

    3回答

    此問題已在堆棧溢出中多次回答,但所有解決方案都沒有幫助我進一步。 (改變「嵌入互操作類型爲false) 我不知道我做錯了什麼,但所有的突然我已經得到了超過200個錯誤 的看到整個錯誤列表here 我試着運行它的錯誤得到一個different message它告訴我的.exe丟失,所以我試圖重建它,但是這使我回到了開始。 它也給我'random' casting errors,那裏的錯誤風暴之前,工

    -1熱度

    2回答

    請任何人都可以闡明這一點。 我有一個使用Outlook互操作程序集的程序,其中一部分速度非常慢,我想使用本地非託管C++來操作com對象以進行更深入的工作。 inline Microsoft :: Office :: Interop :: Outlook :: _ Application^OutlookApp() { return dynamic_cast(HostApplication); }