在VS2022环境下用C#编写DLL动态链接库并在项目中调用

1 编写动态链接库

Step1 创建类库

这里搜索后会有很多种类库,版本要对应,比如是.Net Framework的项目就要选择.Net Framework的类库,WPF项目就选择WPF类库,这里用的.Net Framework,所以我选择.Net Framework的类库,类库名myCalc。
在这里插入图片描述

Step2 编写相关的方法等…

我这里编写了一个简单的计算器方法,创建后会自动生成一个class1.cs的类,自己重命名就可以了,我这里改成了Calc.cs:
在这里插入图片描述

Step3 生成DLL动态链接库文件

顶部菜单栏->生成myCalc
在这里插入图片描述
而后就会生成一个DLL文件,右击项目,在文件资源管理器中打开文件,就可以打开文件所在目录
在这里插入图片描述
进入bin文件下的Debug文件,即可找到生成的DLL文件:
在这里插入图片描述

2 调用动态链接库

Step1 新建了一个(.Net Framework)框架下的控制台应用(和创建的类库相对应):

在这里插入图片描述

Step2 右击项目引用,添加引用,

在这里插入图片描述

Step3 选择浏览,找到自己的DLL文件

在这里插入图片描述

Step4 找到后,选择添加即可

在这里插入图片描述

Step5 添加后会出现引用,打上勾后确定在这里插入图片描述

此时在右边就会出现对自己编写的myCalc.Dll的引用:
在这里插入图片描述

3 对DLL的使用

声明类的对象,调用方法即可,如果想要直接通过类名点的方式调用方法,如Console.ReadLine(),在编写的时候声明方法为静态方法即可
在这里插入图片描述
代码:

public class Program
{
    static void Main(string[] args)
    {
        Calc calc = new Calc();
        int result = calc.Add(1, 2);
        Console.WriteLine("Num 1 add num 2 : " + result);
        Console.ReadLine();
    }
}
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在 Android 平台上,可以通过使用 JNI(Java Native Interface)来调用 C++ 动态链接库DLL)。JNI 是一个 Java 虚拟机规范,用于实现 Java 代码与本地代码的交互。通过 JNI,可以在 Java 声明本地方法,并将其实现委托给本地代码,以便在 Java 调用本地方法。 要在 Android 调用 C++ DLL,需要先将 DLL 编译为适用于 Android 平台的共享库(.so 文件),然后在 Java 代码使用 JNI 调用该共享库。具体步骤如下: 1. 在 C++ 编写动态链接库,并将其编译为适用于 Android 平台的共享库(.so 文件)。 2. 在 Java 声明 native 方法,以便在 Java 调用 C++ 方法。例如: ```java public class MyNativeClass { public native int myNativeMethod(int arg); } ``` 3. 在 C++ 实现该方法,并将其封装为静态库(.a 文件)或共享库(.so 文件)。 4. 将 C++ 库与 Java 代码链接,并打包为 Android 应用程序。 5. 在 Java 代码,使用 System.loadLibrary() 方法加载 C++ 库,并调用 native 方法。例如: ```java public class MyJavaClass { static { System.loadLibrary("MyNativeLibrary"); } public static void main(String[] args) { MyNativeClass myNativeClass = new MyNativeClass(); int result = myNativeClass.myNativeMethod(42); System.out.println("Result: " + result); } } ``` 需要注意的是,JNI 调用 C++ 方法的过程,需要进行参数类型转换和内存管理等操作,因此需要谨慎处理。另外,由于 Android 平台涉及多种架构,需要针对不同的架构编译对应的共享库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亲爱的老吉先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值