作者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/cn.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