C#调用C++的方法
2016-01-06 15:12
369 查看
网上有很多C#调用C++的帖子,我之前走了不少弯路,现总结出来希望大家少走一些弯路,如果有什么不对的地方,欢迎大家随时纠正~ 1.建立一个project,令其输出格式为dll。 2. 对于每一个被dll 封装的函数,要写成如下格式,之后build,即可生成dll。
typedef struct _testStru { float x; float y; float z; }testStru; extern "C" __declspec(dllexport) testStru* testReturnStruct(){ testStru *stru = new testStru(); stru->x = 1.1; stru->y = 1.2; stru->z = 1.3; return stru; }
3.再新建一个project,调用刚刚生成了dll。定义一个nativemethod class,如下
class NativeMethod { [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)] public struct TestStru { public Single x; public Single y; public Single z; }; [DllImport("NativeLibrary.dll", EntryPoint = "testReturnStruct")] public static extern IntPtr testReturnStruct(); [DllImport("NativeLibrary.dll", EntryPoint = "testOutStruct")] public static extern void testOutStruct(ref TestStru p); }
相关文章推荐
- c语言学习----运算篇
- C语言学习之关键字第三讲
- C++-传值与传引用的差别
- 图书管理系统(C语言)
- Sublime for C++
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- C++拷贝构造函数的三种情况
- 彻底搞定C语言指针详解
- 失落的C语言结构体封装艺术
- Sicily 1620. SCVs and minerals 星际争霸简单策略
- [2, Medium, C++] Add Two Numbers
- C语言指针
- C++Builder 解决绘图闪动问题
- C++入门(9):类的继承(2)
- C++中多维数组传递参数
- C++如何通过一个响应事件接受多个控件消息
- [1, Medium, C++] Two Sum
- 【C语言提高37】结构体元素做函数参数与结构指针做函数参数
- C++随机数重复的问题
- C语言学习之关键字第二讲