![]() | 1 ysc3839 2021-05-11 15:58:33 +08:00 via Android 发出来看看吧 |
![]() | 2 thfurior 2021-05-11 16:07:43 +08:00 到网上搜常用类型的 c++ - c#转换,除了指针和结构体麻烦点,其他还好 |
3 wctml 2021-05-11 16:22:13 +08:00 dll 一般都是导出纯 C 的接口 |
4 allen9527 2021-05-11 16:25:52 +08:00 我记得有个 pinvoke 的生成工具,把.h 文件黏进去就可以生成 C#代码了。当然一些参数什么的自己还是要调整下,比如碰到传送字符串的时候。不熟悉的话可能还有些弯路,多问问 google 之类的。。。 |
![]() | 5 Vinty 2021-05-11 16:33:31 +08:00 可以试试 swig 编译一个 c#接口 |
![]() | 6 AdamMaggie 2021-05-11 16:36:11 +08:00 github.com/mono/CppSharp 可以将非托管 C++,用 C++/CLI 或者 C# 生成一个托管类 |
![]() | 7 elmagnificogg 网上资料比较少,微软自己写的转换例子太少了,有些情况都没写。我刚把一个 c++库转到 clr,然后给 c#调,有问题可以问,主要是数据封装类型转换的问题 |
8 Mithril 2021-05-11 20:16:00 +08:00 写个 C++的头文件,然后 SWIG 一把梭。 |
![]() | 9 ch2 2021-05-11 20:52:33 +08:00 你不会 C++肯定搞定不了,不过 C#已经算是调用 C++最简单的了 |
![]() | 10 killergun 2021-05-11 21:19:57 +08:00 微软专门有个自己的 C++/CLI Wrapper,可以直接建该 C++ wrapper 项目 [在这里面调用你的 C++dll] ,你会发现 C#项目能直接引用该项目,跟 C# 本身项目没什么太大区别 。 |
11 wzzzx 2021-05-11 21:41:24 +08:00 非托管的话,你需要自己自己用托管 C++包一层,这样会好一点。托管 C++除了一点例外,其他的跟 C#一样写就好。非托管 C++因为名称修饰的原因,C#没法直接使用 |