DLL库类的导出,C#的调用
来源:互联网 发布:冒泡排序优化 编辑:程序博客网 时间:2024/06/06 03:33
在DLL库的编写中,如果想要把DLL库中写的类导出,并且在C#中进行使用,我们需要先初始化获取类的指针,然后我们可以通过指针对类进行调用,使我们能正常的使用类中的功能。
#ifdef DLL_API#else#define DLL_API extern "C"__declspec(dllexport)#endif class WebICAdapter{public:WebICAdapter(void);~WebICAdapter(void);// 测试add函数int add(int p1, int p2);}; // 返回类别的实例指针DLL_API void* classInit(void **clsp);DLL_API int add(WebICAdapter* p, int p1,int p2); //////////////////////////////////////////////////////////自定义类别的头文件WebICAdapter.cpp//=========导出函数============// 返回类别的实例指针void* classInit(void **clsp){WebICAdapter* p = new WebICAdapter();*clsp = p;return clsp;}int add(WebICAdapter* p, int p1, int p2){return p->add(p1,p2);}//==========类别实现===========WebICAdapter::WebICAdapter(void){}WebICAdapter::~WebICAdapter(void){}// 测试add函数int WebICAdapter::add(int p1, int p2){return p1+p2;} C#定义和调用:////////////////////////////////////////////////////////using System.Runtime.InteropServices;...... //--------------DLL接口定义----------- [DllImport("SWWebICAdapter.dll", EntryPoint ="classInit", CharSet = CharSet.Auto, CallingConvention =CallingConvention.StdCall)] public static extern int classInit(ref int clsPoint); [DllImport("SWWebICAdapter.dll", EntryPoint = "add",CharSet = CharSet.Auto, CallingConvention =CallingConvention.StdCall)] public static extern int add(ref int clsPoint, int p1, int p2); // DLL中的类实例指针 private int _clsPoint = 0; // ----------------------------------- public SWWebIC() { InitializeComponent(); // 初始化DLL类实例 _clsPoint = classInit(ref _clsPoint); }...... private void buttonDevice_Click(object sender, EventArgs e) { int n = add(ref _clsPoint, 11, 12); MessageBox.Show("计算结果:" + n);}
0 0
- DLL库类的导出,C#的调用
- C#如何调用C++编写的dll中的导出类
- c#调用C++写的dll导出类,如何实现
- c#调用C++写的dll导出类
- 在C#中动态调用native dll的导出函数
- 如何生成DLL文件并导出函数及如何在C++或C#中调用DLL中导出的函数
- 非MFC DLL的函数,类的导出与调用
- VC调用C#生成的类库DLL方法
- VC调用C#生成的类库DLL方法
- PHP调用C#开发的dll类库方法
- C#调用C++类的导出函数
- C#调用C的DLL
- C#调用C++的dll
- C++调用C#的DLL
- C++调用C#的dll
- C#调用fortran的dll
- c++调用c#的dll
- VC调用C#的DLL
- java/severelet
- [iOS] 获取当前app的名称和版本号
- 调试九法读书笔记
- hiho太阁面经算法竞赛10
- HDU1068,POJ1466——Girls and Boys(二分图最大独立集)
- DLL库类的导出,C#的调用
- cf 697b 科学记数法逆推
- POJ 1743 Musical Theme 后缀数组
- PAT 1001. 害死人不偿命的(3n+1)猜想
- UIGUI Unity5.x 学习
- GridView小笔记
- [Cloud Computing]Mechanisms: Virtualization Monitor
- python 读取csv文档hex字符串 转为int并存储
- iNOC产品部-杨辉三角的变形