我在C#中將多個COM對象實現爲本地COM服務器。我的客戶是用C++編寫的。這次我使用COM對象(C#類)將數據從C++傳遞到C#,並且工作正常。我只是想,如果這些COM對象只是「數據持有者」,使用C#結構來保存數據會更有效率嗎?使用C#結構體將數據從C#COM對象傳遞到C++
0
A
回答
1
一般不會,特別是來自C#。這取決於您是否編寫了正確的 C++代碼。結構是一個互操作問題,打包和對齊規則是一個實現細節,很容易讓你陷入困境。乘以這個結構成員被封送的變幻莫測的變化,類型有3種常見的方式來封送。字符串和數組從來都不是問題。
編寫正確的C++代碼需要使用IRecordInfo interface,它使用類型庫中的結構定義來知道如何正確編組結構成員。您必須爲結構中的每個字段執行此操作。
當您使用進程內COM服務器時,這不會比調用字段的屬性getter更快。唯一一種在C#中很容易創建的類型。
您可以忽略此要求,並希望您的C++聲明與C#聲明匹配。這可能會起作用。但是,通常只有在編組信息的成本太高時才應該這樣做。只有當屬性獲取者的往返行程太高時,通常情況下,對於轉換公寓邊界的呼叫。就像它對於一個進程外服務器一樣。
相關問題
- 1. 傳遞結構的數組從C#到C++使用COM調用包裝
- 2. 將無符號整數從C++ COM對象傳遞到VB6
- 3. 從C#傳遞結構到C DLL
- 4. 從C++傳遞對象到C#雖然COM
- 5. 將結構從VC++傳遞到C#
- 6. 將結構數組從C++傳遞到C#
- 7. 傳遞結構的陣列從C++(COM),以C#
- 8. 揭露C++ COM數據結構,以C#
- 9. 傳遞數組從C#COM對象到JavaScript?
- 10. 將數據結構從VC++傳遞到C#?
- 11. 將結構化數據類型從Fortran傳遞到C++
- 12. 將C#結構傳遞給C++/CLI
- 13. C# - 將結構從一個對象傳遞到另一個對象
- 14. 將結構從非託管C++傳遞到C#
- 15. 如何將包含void *的結構從C++傳遞到c#?
- 16. 將參數從VB.Net傳遞給C(結構體)
- 17. 傳字節數組從C#到C++(COM)
- 18. 調用COM對象從C#
- 19. 從C調用託管C#COM對象#
- 20. 通過COM將delphi 5結構/記錄的C風格數組傳遞給C#
- 21. 將結構傳遞給函數c
- 22. C++將結構傳遞給函數
- 23. 將C++對象傳遞給C#
- 24. 將數據從C#傳遞到PHP
- 25. 將數據從JavaScript傳遞到C#
- 26. 將COM對象的C#數組傳遞給VB6
- 27. 如何將字符串參數從C++ com傳遞給c#?
- 28. 將複雜的對象從C#傳遞到C++
- 29. 如何將CImg圖像對象從C++/CLI傳遞到C#
- 30. c結構被傳遞到函數
也許吧。也許不會。你爲什麼不通過比較和分析發現。 –