[問題] C#與C++的互動有哪些陷阱?

看板C_Sharp (C#)作者 (下一夜)時間5年前發表 (2020/04/18 04:06), 5年前編輯推噓4(404)
留言8則, 5人參與, 4年前最新討論串1/1
如題 個人對C++比較熟悉,也累積比較多工具在上面 想跟C#組合起來使用 但是發現限制不少 例如跟C#第一線接觸的dll必須是開啟CLR的C++專案 CLR又不支援C語言(但是能連上C語言編出來的dll,尚可接受) 然後吃到boost的標頭檔也會跳錯誤訊息出來 像std::printf之類的函式也噴不出訊息 我想知道還有多少限制存在? 是不是我最好dll封裝乾淨點別露出太多東西給那個CLR專案看到? 圖片處理是不是在C#這邊開unsafe用指標處理比較順手? 我看要傳去C++那邊處理好像挺費力的? 要用Marshal另外申請記憶體才能給C++處理? 希望有這方面經驗的人可以分享一下這裡的坑 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.113.173 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1587182804.A.7D8.html

04/18 13:11, 5年前 , 1F
不一定要clr阿
04/18 13:11, 1F
我記得有限制啊? C#能直接使用普通的DLL嗎? ※ 編輯: eye5002003 (220.136.113.173 臺灣), 04/18/2020 15:17:51

04/18 16:55, 5年前 , 2F
C#可以直接吃普通的DLL,詳見dllimport
04/18 16:55, 2F

04/19 02:39, 5年前 , 3F
可以的話不要混,很麻煩
04/19 02:39, 3F
我混起來確實有遇到麻煩 但是又無法完全只用C# ※ 編輯: eye5002003 (220.136.113.173 臺灣), 04/19/2020 20:36:44

04/20 14:50, 5年前 , 4F
只是工具的話我會用C#改寫,程式碼很多都能通。第三方dll
04/20 14:50, 4F

04/20 14:50, 5年前 , 5F
沒辦法才會用pinvoke
04/20 14:50, 5F

04/30 20:06, 5年前 , 6F
c#基礎型別,丟到用dll包好的c function不大會出什麼問題
04/30 20:06, 6F

04/30 20:06, 5年前 , 7F
c#的string就不大適合直接丟了
04/30 20:06, 7F

07/11 11:07, 4年前 , 8F
走ipc不好嗎
07/11 11:07, 8F
文章代碼(AID): #1UcdpKVO (C_Sharp)
文章代碼(AID): #1UcdpKVO (C_Sharp)