使用的工具是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