對於C 與C 之間的資料傳輸,用GCHandle或Marshal是否就是最好的方案了?

時間 2021-06-07 18:56:00

1樓:丁長老

建議用com,直接訪問就可以了。

其他的方式嗎,可以考慮socket,我做過乙個類似的小專案,c++端是opencv,嵌入了乙個攝像頭,對特定物件(玩家丟出的球,真球)做運動檢測和撞擊檢測,unity端做效果展示(被球砸到的物體消失)

就在c++端做了乙個socket伺服器,通過本機的socket進行程序間通訊,速度也是還不錯的。

程序內部,pinvoke,com,都是可以考慮的。複雜的資料或者太過複雜的結構體,可以考慮簡化成多個引數。

2樓:Gavin

我覺得輪子哥的回答還是靠譜的。c#和vc通訊的話,應該還是比較容易的。如果題主要求c#和其他c++程式通訊可能就比較困難。

題主說的這兩種技術我都不懂。說說我目前的做法,唉,其實也挺簡單的,就是通過socket實現通訊,缺點也很明顯,就是代價大,浪費比較嚴重。

3樓:MaxwellGeng

可以記憶體分配封裝在Cpp層,然後C#裡全員unsafe void*,該Malloc就呼叫cpp,寫的時候注意點的話,問題不大。

4樓:

這取決於你所認為的「最好」是從什麼角度上來說的了。

要是圖執行時高效,可以考慮C++/CX,或者直接 PInvoke。

要是圖編碼時省力省心,或者有平台實現無關性考慮,控制台直接IO也不是不可以。

5樓:shuhari

從理論上講,不傳輸資料才是最好的——即所有工作都放到C#或C++一側,另一側只拿到乙個最終結果。當然能否這樣實現取決於你們的程式模型。

確實需要傳輸資料的話,P/Invoke也只是其中一種方案,其他可能還包括共享記憶體,訊息,IPC,管道,Socket,檔案,資料庫,佇列,COM,等等。沒有足夠的細節,無法說哪個最好。

軟體之間的資料傳輸介面有哪些?這些介面是如何開發的?

ming yang 要知道所有在電腦或者手機等裝置間傳輸資料,無外乎兩個基礎協議tcp ip和UDP。TCP IP就是點對點傳輸 UDP就是廣播協議一對多傳輸 任何協議其實就是在這兩個協議之上的二次封裝 直接傳輸方式有 socket這直接就是使用了tcp ip或UDP,一般socket在C 裡就是個...

LiFi 目前是否用於資料傳輸的生產部署?

林大路 這個是不可能的,這種東西始於實驗室,終於實驗室因為你把它的光線一阻擋,好了,傳輸失敗,就跟TCP裡面丟包率太高一樣速度也是理論的 而且可見光的傳輸有多遠?LiFi的技術原理其實很簡單,就是不斷的閃爍燈光,發出像摩斯碼一樣的頻率 然後被解碼器還原 所以這種東西基本是用來竊取資料的 如何竊取資料...

802 11協議從ap到sta資料傳輸的過程是怎樣的

ll dd 你sta關聯上ap之後,ap會記錄每個sta mac 位址的,乙個例子 sta 應用層開啟乙個網頁,遠端伺服器到ap後,ap知道這個資料報目的地的IP位址 也就是sta的ip位址 在sta關聯上ap之後其實還有個arp協議互交過程,可以簡單理解為,ap和sta互相知道兩者之間從mac位址...