C#中调用c++的dll
2015-11-23 23:16
597 查看
C#中调用c++的dll具体创建与调用步骤,亲测有效~
使用的工具是VS2010哦~其他工具暂时还没试过我新建的工程名是my21dll,所以会生成2个同名文件。接下来需要改动的只有画横线的部分
下面是my21dll.h里面的。。。
下面的1是自动生成的不用动,或者也可以不要,因为只是一个宏而已下面可以做相应修改。
下面的2是自动生成的类,我没用就注释掉了
下面的3是自动生成的一个测试函数,原来函数最前面是extern,记住精髓是要改成EXTERN_C
下面的4是我自己写的一个测试函数,用来求和
下面是my21dll.cpp里面的
号3对应上面号3的函数,号4对应上面号4对应的函数。
下面要修改工程的属性
下面是生成dll,两个红线的都可以
然后就可以在DeBug文件夹下看到dll了(~ ̄▽ ̄)~
再创建一个c#的控制台程序调用看看吧
我那是两个分开的函数,所以每一个都要写一个DllImport和extern static来声明,然后下面就可以像调用普通函数一样调用了。<( ̄ˇ ̄)/
输出
后来我又测试了一下,假如c#中调用的c++函数里调用了c++里的其他函数,里面套用的那些函数也需要声明吗?
我先把.h里面的fnmy21dll()注释掉
又把.cpp文件里函数做了相应修改
c#的函数也只声明了Add函数,看看行不行~
结果,没问题,成功了,说明只要最终在c#中显示出来的函数进行了声明就可以了,而且那些被调用的函数也可以像普通函数那样去写,只有不要export的函数写上输出的声明就可以了(^-^)V
分类: C#
相关文章推荐
- c语言:求字符串的字节数,strlen
- C++引用的探究
- paip.提升用户体验---c++ qt 悬浮窗实现
- C++学习笔记28——泛型算法之iostream迭代器
- 待排序的最短子数组长度(C++版)
- OC 语言的特性和OC/C/C++ 比较
- 【C语言】 检测大小端存储
- c++栈之括号匹配问题
- c++之链表实现栈
- C语言段与内存的理解
- C++开发中一个解决方案里,两个项目的相互引用,相互依赖的实现方法(解决方法)
- strcpy,strncpy函数实现——string.h库函数
- 有序矩阵查找的快速算法(C++版)
- 【C++】非递归求二叉树的前序和中序序列
- c++类模板之间友元函数调用
- 《C++ primer》英文第五版阅读笔记(十六)——赋值运算符
- 【UVALive】3029.City Game<C++>
- 三色排序问题/(荷兰国旗问题)(C++版)
- C++ 表达式
- 【应用笔记】【AN003】VC++环境下基于以太网的4-20mA电流采集