一、C#封装成DLL

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

  

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

  

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

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文件

  

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

  

  

二、C#中调用该DLL

1、新建WPF项目testUseMyDll,在引用里添加testMyDll项目封装好的类库。

  

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

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

  

  

  

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

  

4、使用using包含进去

using myDLL;

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

  

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

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

6、运行结果如下

   

7、最后附上完成的测试代码图

  

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

  

C#封装成DLL,并在C#中调用的更多相关文章

  1. 将QT开发的界面程序封装成DLL,在VC中成功调用

    最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...

  2. 将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)

    最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...

  3. unity脚本封装成dll

    先申明一下这样做是有需要的.当我们需要把脚本提供给第三方使用,而又不希望对方看到具体的实现过程,这时候就需要将代码封装编译成dll文件,供第三方调用.或是多个项目都要用到同一个模块或同样的功能,则可以 ...

  4. 使用DOS命令将类库封装成dll

    1.Windows键+R.输入cmd进入DOS 2.使用 cd  加路径找到需要封装成dll的类库文件 3.csc /target:library /out:dll的名字.DLL 需要封装的cs文件

  5. C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  6. C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  7. 如何将.il、.res文件封装成dll文件

    将你的.il..res文件保存在你的硬盘上,如下图: 我存放的路径在E盘的test文件夹中,我们开始封装了咯.进入DOS命令,如下图: 我们通过DOS命令先进入.il..res文件目录,如下图: 然后 ...

  8. 将webservice封装成dll

    生成dll文件的步骤如下:1.发布完成后,在浏览器中打开WebService文件,如:http://localhost/WebSer/WebService1.asmx,可以看到WebService1. ...

  9. java类封装成dll

    @参考文章1,@参考文章2,@参考文章3 1,建立测试类,注意英文注释部分,用汉语直接编译会乱码 public class Hello { //native method is used for ca ...

随机推荐

  1. TI C66x DSP 系统events及其应用 - 5.6(INTMUX)

    系统event 0~127(包含了eventCombiner的输出event 0~3)与CPU支持的12个可屏蔽中断是通过INTMUX寄存器进行映射的(不包含NMI.RESET).能够选择将系统eve ...

  2. Ylmf_Ghost_Win7_SP1_x64_2017_0113.iso虚拟机安装

    新建虚拟机,将iso镜像配置好,然后开启虚拟机 一开始选择PQ8.05: 找到“作业”菜单---“建立” ,新建一个“主分区”然后点击确定 新建主分区作业之后,如果需要新建其他分区继续进行即可,本例只 ...

  3. 【cl】找不到火狐Cannot find firefox binary in PATH

    org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is ins ...

  4. 手机对支持128G扩展内存的介绍

    具体说明: 1,JB2之前的版本只支持SD2.0 SPEC,SD2.0 SPEC定义了最大支持SD卡容量到32G. 2,JB2及以后的版本支持SD3.0 SPEC,SD3.0的SPEC定义了最大支持S ...

  5. [POI 2007] 堆积木

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1109 [算法] DP [代码] #include<bits/stdc++.h& ...

  6. 【POI 2007】 山峰和山谷

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1102 [算法] 广度优先搜索 [代码] #include<bits/stdc+ ...

  7. HUST 1585 排队

    2019-05-21 10:15:00 加油,加油 !!! #include <bits/stdc++.h> using namespace std; int main() { int n ...

  8. 字符串比较——compareTo函数

    package com.day03.ifelse; import java.math.BigInteger; /** * @author 王恒 * @datetime 2017年4月7日 下午3:13 ...

  9. logrotate配置文件

    一.logrotate配置文件 /etc/logrotate.conf

  10. SQLServer Union 和 Union All 在Insert 语句中的不同效果

    如果不是发了那个帖子还不会像这样意外发现这两者的不同,好歹了也工作了一段时间,真是汗颜 上例子: 执行此条插入语句后,只会插入两条数据,因为会把完全重复的数据过滤掉 insert into tests ...