[問題] 將c++程式包起來 讓C#可以讀

看板C_and_CPP (C/C++)作者 (On S)時間15年前 (2011/01/02 17:56), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...) Visual Studio 2008 問題(Question): 小弟之前在c++上面寫了許多程式 之前是拿去QT上面使用 所以沒有語言上不通的問題 現在想要把C++的程式搬到c#上面使用 不知道C++的程式是否能包成類似 dll或lib檔讓c#讀取呢 小弟有試著寫了簡單dll檔,不過從c#讀取的時候卻讀不進來 我寫的是 c++ mfc 常規dll(動態) 實在是找不到相關的書 網路上的資源感覺又找不太到 在上面這邊請各位大大幫幫忙了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.72.152

01/02 18:00, , 1F
1. 寫成COM 2.改用c++/cli 3.platform invoke 4.其他?
01/02 18:00, 1F

01/02 18:04, , 2F
4. 用 SWIG 幫你把 C++ 轉成 C# 介面.
01/02 18:04, 2F
嗯…強者真多 那請問一下用什麼方法會比較快呢? c++的程式大約有兩千~三千行左右.... ※ 編輯: kf185793 來自: 140.124.72.152 (01/02 18:08)

01/02 20:35, , 3F
3會比較快,不過MFC的dll不確定可不可以
01/02 20:35, 3F

01/02 20:37, , 4F
不行的話可以寫一個win32的dll來forward MFC裡面的API給C#
01/02 20:37, 4F

01/02 22:17, , 5F
C++程式多不是重點吧, 重點在你要開多少的介面給 C# 用
01/02 22:17, 5F

01/02 22:19, , 6F
用swig可以幫你把C++class或全域func產生出C#的檔案
01/02 22:19, 6F

01/02 22:19, , 7F
而你的C++程式則會變成一個 dll 檔.
01/02 22:19, 7F

01/02 22:20, , 8F
而你C#程式部份只要 import 那個產生出來的C# wrapper檔
01/02 22:20, 8F

01/02 22:20, , 9F
剩下的就是直接用它把他當成是一個C#的 assembly 而已
01/02 22:20, 9F
嗯 我想說給個大概程式碼的行數 有助於方法的選擇 哪一個比較快 並無惡意 我會試試看你們的方法 謝謝你們 如果我有問題 我在提問 ※ 編輯: kf185793 來自: 140.124.72.152 (01/02 22:38)
文章代碼(AID): #1D84lEZg (C_and_CPP)
文章代碼(AID): #1D84lEZg (C_and_CPP)