rcw

    0熱度

    1回答

    我有兩個VB 6程序集(DLL)。 ProgramA.dll和ProgramB.dll,我需要在我的.NET Web Service(2.0版)中添加它作爲參考。 我被不同的開發人員交給了這兩個DLL。 一位開發商給了我只是ProgramA.dll 其他開發商給了我ProgramB.dll,ProgramB.exp和 ProgramB.lib 我只是註冊ProgramA.dll使用REGSVR32

    -2熱度

    1回答

    我有一個COM組件 - 「ProgramA.dll」 這COM組件內部引用「ProgramB.dll」,並創建底層對象的一個​​實例如下: Public Sub AddData() Dim..... ....... Set objClassA = New ProgramB.clsClassA ..... End Sub 我已經在我的.NET應用程序中添加了ProgramA.d

    0熱度

    1回答

    有什麼辦法來運行代碼時,COM對象是即將從RCW斷開沒有實現IDisposale接口和顯式調用MyObject.Dispose在客戶端代碼? 下面的代碼無法正常工作。當程序進入Finalize子程序時,ExcelApplication已經與RCW斷開連接,並且出現錯誤。我明白爲什麼會發生,但我想得到一個解決方案。 我希望把它的工作方式如下:當最後一個託管引用被釋放,COM對象斷開連接之前執行從最終

    3熱度

    2回答

    注:有關背景信息,請參閱此相關的問題:How to get LINQPad to Dump() System.__ComObject references? 我能夠檢索對應於從另一個COM對象獲得一個COM對象(RCW類的CLSID,不通過我的代碼初始化)使用IPersist.GetClassID()。 Type.GetTypeFromCLSID()總是返回弱類型的System.__ComObje

    0熱度

    1回答

    我的問題是在標題中錯誤消息: COM object that has been separated from its underlying RCW cannot be used. 我試圖谷歌,但我只能找到相關的解決方案析構函數/釋放對象。 這不是我想做的事情。 首先,這裏是我的代碼: String^ filename="c:\\wb.xlsx"; Microsoft::Office::Int

    2熱度

    1回答

    我很好奇.NET Native如何工作。通常,當在託管代碼中使用WinRT類時,通過RCW調用它們,由於託管和非託管代碼之間的互操作性,會產生一些開銷。我想知道當使用.NET Native編譯託管代碼時是否存在理論上相同的開銷?

    1熱度

    1回答

    我對使用32位互操作DLL與64位進程有點困惑。 爲了訪問8TB的內存,我打算爲64位構建我的應用程序,不幸的是它使用了一些構建在32位模式下的統計互操作庫。我沒有該庫的源代碼,因此我無法將其重建爲64位。 在this文章中建議創建64位代理過程,該過程將使用IPC(例如WCF)與我的應用進行通信。 Here我們可以找到使用Runtime Callable Wrapper(RCW)的解決方案。哪個

    2熱度

    1回答

    我有一個MyObject,它從外部DLL創建一個靜態devDrv。如果devDrv是由MyObject構造函數創建的。代碼工作正常。如果devDrv是由MyObject.Connect之一創建的(請參閱下面的第二個對象),第一次調用MyObject.Connect()可以正常工作。在第二次調用時,我會得到這個錯誤:「已經從其底層RCW分離的COM對象不能使用」。這似乎是devDrv不持久。我希望這

    0熱度

    2回答

    我將一個arcobjects地圖事件掛鉤到vb.net表單以偵聽地圖選擇更改。這一切都正常,但用戶在打開表單時偶爾報告這個錯誤。我看不到任何模式來重現錯誤,它似乎是隨機的。 「已從與其基礎RCW分開COM對象不能使用」 它從表單負載起源()方法,其中,我掛鉤事件。 任何人都可以幫助我瞭解我做錯了什麼嗎?我正在解決FormClosing()事件中的地圖選擇事件,我認爲這是正確的方法。 Public

    1熱度

    1回答

    當我要求Visual Studio爲我的COM組件生成運行時可調用包裝器時,它會選擇一個奇怪的類型來包裝某個接口屬性。 這是組分A的彙總類型庫: // Generated .IDL file (by the OLE/COM Object Viewer) // // typelib filename: prodist.sts.dll [ uuid(DD00B52D-D8F9-4D5