作者eye5002003 (下一夜)
看板C_Sharp
標題[問題] C#與C++的互動有哪些陷阱?
時間Sat Apr 18 12:06:42 2020
如題
個人對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://webptt.com/m.aspx?n=bbs/C_Sharp/M.1587182804.A.7D8.html
1F:→ petercoin: 不一定要clr阿 04/18 13:11
我記得有限制啊?
C#能直接使用普通的DLL嗎?
※ 編輯: eye5002003 (220.136.113.173 臺灣), 04/18/2020 15:17:51
2F:→ james732: C#可以直接吃普通的DLL,詳見dllimport 04/18 16:55
3F:推 Litfal: 可以的話不要混,很麻煩 04/19 02:39
我混起來確實有遇到麻煩
但是又無法完全只用C#
※ 編輯: eye5002003 (220.136.113.173 臺灣), 04/19/2020 20:36:44
4F:推 Litfal: 只是工具的話我會用C#改寫,程式碼很多都能通。第三方dll 04/20 14:50
5F:→ Litfal: 沒辦法才會用pinvoke 04/20 14:50
6F:推 nigue: c#基礎型別,丟到用dll包好的c function不大會出什麼問題 04/30 20:06
7F:→ nigue: c#的string就不大適合直接丟了 04/30 20:06
8F:推 cspy: 走ipc不好嗎 07/11 11:07