C++部分
1、创建DLL工程
文件->新建->项目->visual c+±>win32->win32控制台应用程序(win32项目也可以,后续可以更改平台为x64)
填写项目名称MyDLL->确定->下一步->DLL(附加选项 对空项目打钩)->完成。
2、编写头文件和源文件
头文件MyDLL.h中可以声明函数或者构建结构体,stdafx.h中可以引用程序需要的其他头文件。(例如结构体头文件,这样就不用在主运行文件中引用多个头文件,文件数少的时候虽然感觉没什么影响,但是当文件多的时候,主运行文件的引用头文件不会显得很臃肿)
源文件MyDLL.cpp写调用函数。下面简单写一个相加函数进行调用。
MyDLL.h
#pragma once //头文件只加载一次
extern "C" __declspec(dllexport) int Add(int a,int b);
MyDLL.cpp
int Add(int a,int b){
return a+b;
}
3、生成DLL文件
右击项目,点击生成,dll文件就生成了。
或者点击头部菜单的生成,点击生成解决方案。
C#中
将上述生成的MyDLL.dll复制到C#的Debug所在的目录。
1、引入dll文件
在需要引用dll文件中函数位置上方,添加下方代码,即可正常使用add函数。
[DllImport("DemoTest.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int add(int a, int b);
注:由于C++和C#两种语言中int是一样的,因此直接传int类型的数是允许的(值能在C++和C#交互),如果是结构体则不能这么传输。