首页 > 编程语言 >《c#慢跑》dll篇

《c#慢跑》dll篇

时间:2023-04-13 11:11:43浏览次数:54  
标签:调用 封装 c# System DLL 慢跑 using dll

生成dll并调用

原文链接:https://www.likecs.com/show-308282657.html

一、C#封装成DLL

1、在VS中创建项目选择类库,命名 myDll
image

2.建立好项目后自动生成的代码如下:
image

代码修改如下,添加自己要封装的C#代码,注意修饰符必须为pubic

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myDLL
{
	public class Class1
	{
		//封装的DLL函数
		public int add(int x, int y)
		{
			return x + y;
		}
	}
}

3.点击项目生成解决方案,然后在项目目录的bin/debug下即可发现封装好的dll文件
image

注意:封装成DLL时程序集名字要跟程序里的 namespace 命名一致,如下图,否则应用DLL时无法引用成功。
image

image

二、C#中调用该DLL

1.新建Windows窗体应用程序
image

2.把DLL放在项目文件夹的bin目录的Debug目录下

3.点击项目里的引用添加DLL
image

image

image

添加完后可以在应用里看到DLL

image

4.使用using包含进去

using myDLL;

5、添加一个测试按钮,按下就调用该DLL的函数
image

跳转到按钮程序部分添加调用代码

Class1 test = new Class1(); //新建类
int a = test.add(1, 2); //调用DLL的函数
MessageBox.Show(" a = " + a);//查看调用结果

image

说明:C#封装的DLL是非标准的DLL(托管类),不可以用 DllImport 调用,DllImport是用来调用标准类(非托管类)的,这类DLL一般是用C++写的

image

标签:调用,封装,c#,System,DLL,慢跑,using,dll
From: https://www.cnblogs.com/fusio/p/17312731.html

相关文章

  • oracle中if/else的三种实现方式详解
    oracle中if/else的三种实现方式详解1、标准sql规范1、单个IFIFv=...THENENDIF;2、IF...ELSEIFv=...THENELSEt....;ENDIF;3、多个IFIFv=...THENELSIFv=...THENt...;ENDIFL注意:多个IF的是'ELSIF'不是'ELSEIF'2、decode函数DECODE(VALUE,IF......
  • chatgpt接口
    (1)使用curl发送http请求curlhttps://api.openai.com/v1/chat/completions\-H"Content-Type:application/json"\-H"Authorization:Bearer$OPENAI_API_KEY"\-d'{"model":"gpt-3.5-turbo","......
  • EXCEL笔记
    1.EXCEL_VBA常用语句300句http://ishare.iask.sina.com.cn/f/buTg9YmOAZ3.html      2.EXCEL使用技巧Word/PPT/Excel/PDF格式互转方法https://baijiahao.baidu.com/s?id=1591720369258445486&wfr=spider&for=pc3.使用if函数进行判断https://mbd.baidu.com/newspage/data/......
  • 制作firebird for linux aarch64/loonarch64单机版deb安装包
    firebird是一个全功能的,强大高效的,轻量级,免维护的数据库,下面简单介绍firebird作为单机版时怎样制作deb安装包(firebird编译见:https://www.cnblogs.com/qiufeng2014/p/16593961.html)。制作安装包有2点要注意:1、设置依赖包:libtommath-dev,libmcrypt-dev,libtomcrypt-dev2、将libEngin......
  • 数据采集代码 模板化,标准化(放到dll)
     socket通信:ip,port,timeout(别忘,300),关闭连接串口通信:串口号,波特率,超时等,字符编码(别忘,),关闭连接 。overtcp(串口服务器) 指令拼接:标准化,写到dll,做好备注。 -----------------比如下面代码中,tostring使用,--------------------------vs没有提示x和X的区别,写到自己的工作dl......
  • Spring Quickstart Guide同步构建测试
    进行了前置的配置后,打开IDEA,进行环境构建,第一次运行结果 把JDK更换为17版本后同步成功   输出结果  浏览器运行结果 ......
  • git 更新代码错误 Your local changes to the following files would be overwritten
    当gitpull时提示 Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge idea中撤销当前本地本次提交 ......
  • centos下安装python3详细教程
    centos7自带有python,版本是python2.7接下来我们手动安装python3,并且配置后可以并存使用。1.首先,你要知道系统现在的python的位置在哪儿:[root@root~]#whereispythonpython:/usr/bin/python2.7/usr/bin/python/usr/lib/python2.7/usr/lib64/python2.7/etc/python/usr......
  • MacOS下强行运行任何来源的APP的方法
    1、首先在电脑左上方点击“系统偏好设置”2、点击“安全性与隐私”按钮。3、勾选“任何来源”按钮,打开即可。   有时候这个选项会不存在,那么需要关闭系统的Gatekeeper,在终端中使用此命令打开:sudospctl--master-disable执行上述步骤之后,出现“任何来源”选项......
  • mybatis的坑-foreach
    往MyBatis中批量插入数据,我们常常这么干<insertid="batchInsert"parameterType="java.util.List">insertintoUSER(id,name)values<foreachcollection="list"item="model"index="index"separator=&qu......