前置工作:已经操作 .net 5 快速开始
环境:
系统 window10 x64
1.打开项目
- vs code 打开上一步创建好的目录 xxx\net5Start\
- 创建 net5Start\lib\ 目录
- 所有 .dll 放入 \lib 目录
2.托管 DLL 调用
C# 工程编译dll 为托管模式dll ,一般调用较为方便,只需要简单配置引用。
- .csproj 文件中配置 dll 引用
<Project Sdk="Microsoft.NET.Sdk">
.....
<ItemGroup>
<Reference Include=".\lib\classlibTest.dll"></Reference>
</ItemGroup>
.....
- 代码中直接调用dll的内容
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
//直接调用 dll中的 ADD 函数
Console.WriteLine("打印 托管 dll 函数调用 ADD:" + classlibTest.Class1.ADD(12, 5));
}
//Hello World!
//打印 托管 dll 函数调用 ADD:17
3.非托管 DLL 调用
C++ 编译 dll ,默认为 非托管模式。
- InteropServices 引用
using System.Runtime.InteropServices;
- 定义绑定非托管函数
[DllImport(@".\lib\cpp2DllStyleC.dll")]
public static extern double add_gcc_c(double a, double b);
- 代码中调用
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.WriteLine("打印 托管 dll 函数调用 ADD:" + classlibTest.Class1.ADD(12, 5));
//调用 绑定 非托管dll的函数
Console.WriteLine("打印 非托管 dll 函数调用 ADD:" + add_gcc_c(8, 6));
}
//Hello World!
//打印 托管 dll 函数调用 ADD:17
//打印 非托管 dll 函数调用 ADD:14
网友评论