C#封装成DLL,并在C#中调用
一、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#中调用的更多相关文章
- 将QT开发的界面程序封装成DLL,在VC中成功调用
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...
- 将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...
- unity脚本封装成dll
先申明一下这样做是有需要的.当我们需要把脚本提供给第三方使用,而又不希望对方看到具体的实现过程,这时候就需要将代码封装编译成dll文件,供第三方调用.或是多个项目都要用到同一个模块或同样的功能,则可以 ...
- 使用DOS命令将类库封装成dll
1.Windows键+R.输入cmd进入DOS 2.使用 cd 加路径找到需要封装成dll的类库文件 3.csc /target:library /out:dll的名字.DLL 需要封装的cs文件
- C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...
- C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...
- 如何将.il、.res文件封装成dll文件
将你的.il..res文件保存在你的硬盘上,如下图: 我存放的路径在E盘的test文件夹中,我们开始封装了咯.进入DOS命令,如下图: 我们通过DOS命令先进入.il..res文件目录,如下图: 然后 ...
- 将webservice封装成dll
生成dll文件的步骤如下:1.发布完成后,在浏览器中打开WebService文件,如:http://localhost/WebSer/WebService1.asmx,可以看到WebService1. ...
- java类封装成dll
@参考文章1,@参考文章2,@参考文章3 1,建立测试类,注意英文注释部分,用汉语直接编译会乱码 public class Hello { //native method is used for ca ...
随机推荐
- php模拟并发
原文: http://blog.csdn.net/zhang_xinglong/article/details/16339867 ----------------------------------- ...
- asp.net控件的异步刷新
需求:我们知道,asp.net控件中的button控件,默认是开启了自己主动回发的,而有时候.我们不想刷新整个界面.而仅仅想局部刷新,可页面中又偏偏用到了.net button控件. 尽管我非常讨厌. ...
- java中tcp小样例
服务端: ServerSocket service = new ServerSocket(7777); Socket socket = service.accept(); InputStream in ...
- 三星抛出万亿投资计划 布局四大科技创新领域(5G、人工智能、汽车半导体、生物技术四大新兴产业)
三星近日抛出震惊世人的投资计划,未来三年将在全球范围新增投资180万亿韩元(约1万亿元人民币).新增员工4万名.这是韩国单一企业集团大规模的投资计划. 笔者获悉,三星万亿投资计划主要分两大部分,一是在 ...
- luogu2774 方格取数问题 二分图最小权点覆盖集
题目大意:在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,输出这些数之和的最大值. 思路:这种各个点之间互相排斥求最大值的题,往往需要利 ...
- c21---结构体
// // main.c // 结构体基本概念 // #include <stdio.h> int main(int argc, const char * argv[]) { /* 基本数 ...
- rk3288的pcba模块编译调试笔记【学习笔记】
平台信息:内核:linux3.0.68 系统:android/android6.0平台:rk3288 作者:庄泽彬(欢迎转载,请注明作者) 邮箱:2760715357@qq.com 摘要:最近在负责r ...
- Spark MLlib介绍
Spark MLlib介绍 Spark之所以在机器学习方面具有得天独厚的优势,有以下几点原因: (1)机器学习算法一般都有很多个步骤迭代计算的过程,机器学习的计算需要在多次迭代后获得足够小的误差或者足 ...
- Juniper交换机维护
Juniper交换机维护操作之一: 1.1 交换机启动和关闭 1.1.1 重新启动 1. 使用具有足够权限的用户名和密码登陆CLI命令行界面. 2. 在提示符下输入下面的命令: use ...
- [JavaEE] Spring学习资源链接
学习规划 http://forrest-lv.iteye.com/blog/1166947 SpringMVC - 框架配置 http://blog.csdn.net/ljhabc1982/artic ...