C# 创建和引入动态链接库dll文件
一.创建动态链接库dll文件
新建 -> 项目->类库
名称为:dlltest
添加函数:消息框弹出消息
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace dlltest {
public class Class1
{
public void ShowMessage(string text)
{
Console.WriteLine("你调用了动态链接库!");
MessageBox.Show(text,"消息提示");
}
}
}
生成解决方案:名称为dlltest.dll的文件
二:引用动态链接库dll文件
- 新建项目,以控制台应用程序为例
添加引用:浏览,添加创建好的dlltest.dll文件
- 添加
using dlltest; //动态链接库文件名称 引入动态链接库方法: using System.Runtime.InteropServices; //引入动态链接库 //引入动态链接库
[DllImport("dlltest.dll")] public static extern void ShowMessage(string text);//动态链接库中方法 static void Main(string[] args) { Console.WriteLine("请输入数字:\n"); string content= Console.ReadLine(); //实例化 dlltest.Class1 i = new dlltest.Class1(); //调用动态链接库的方法 if (content != "") { i.ShowMessage(content); } else i.ShowMessage("用户输入为空!"); }
- 启动执行:
输入数字1,回车
输入空,回车
至此,一个简单的dll文件创建及调用方法基本GET了。
C# 创建和引入动态链接库dll文件的更多相关文章
- 编译可供C#调用的C/C++动态链接库dll文件
编译可供C#调用的C/C++动态链接库dll文件,C语言控制台应用程序,探索生成dll过程 由于项目需求,需要公司另一个团队提供相关算法支持,是用C语言编译好的dll库提供给我们进行调用. 但是拿到d ...
- vs2010创建和使用动态链接库(dll)
本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接库,并提出了与实现相关的几个问题,供初学者交流. 本文包含以下内容: 创建动态链接库项目 向动态链接库添加类 创建引用动态链接库的 ...
- vs2010 C++创建和使用动态链接库(dll)
一.用C++创建动态链接库项目: 1.打开Microsoft Visual Studio 2010,选择File->New->Project. 2.在NewProject中选择Inst ...
- 制作和unity调用动态链接库dll文件
首先用vc建立一个dll工程 然后在里面建立一个testunity.h文件.内容如下 1 extern "C" int _declspec(dllexport)testunity( ...
- 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件
出现这个问题,是由于使用了非.NET 的动态链接库,需要注册 方法如下: 1.在搜索程序和文件中使用 regsvr32 "D:\Projects\8.01.01.03-重庆大足\lib\Va ...
- 创建一个动态链接库 (DLL),使用VS2010
在本演练中,您将创建一个动态链接库 (DLL),其中包含可供其他应用程序使用的有用例程.使用 DLL 是一种重用代码的绝佳方式.您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次, ...
- 【转载】创建和使用动态链接库 (C++)
原文:http://blog.csdn.net/handforcpp/article/details/3478254 也可参考MSDN: 演练:创建和使用动态链接库 (C++) 我们将创建的第一种类型 ...
- 演练:创建和使用动态链接库 (C++)
我们将创建的第一种类型的库是动态链接库 (DLL). 使用 DLL 是一种重用代码的绝佳方式. 您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它 ...
- C++编写DLL文件
动态链接库DLL文件与EXE文件一样也是可执行文件,但是DLL也被称为库,因为里面封装了各种类.函数之类的东西,就像一个库一样,存着很多东西,主要是用来调用的.调用方式主要分为两种:隐式(通过lib文 ...
随机推荐
- TypeError: esri.layers.WMSLayer is not a constructor
最近加载wms地图后,总是报这个错误,因为错误,导致后续的代码无法加载,导致无法功能使用. 原因是,由于方法公用,有的新功能在使用时,引用依赖包时,未引用完整,导致加载此处加载wms图层的时候, 报此 ...
- 采购合同的条件价格取值逻辑(如ME35K/ME3M显示报表的多个日期范围的条件价格)
1.根据采购订单合同和行项目和类型(合同是M)在A016表中取值条件号, 2.根据A016的条件号在KONP中取得价格 ME35K.ME3M的增强点在子程序LMEREPI02下的 METHOD if ...
- mysql5和mysql8连接数据库的配置
mysql5: mysql8: db.properties jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3 ...
- EF6
EF讲解 EF(entityframework) ORM框架中的一种 然后 我们来说下 什么是 ORM (对象映射关系) object relation Mapping 微软 为了更简化 使用 ...
- matlab 中figure的图像 抗锯齿
linehandle = plot(xxxxxx); set( linehandle, 'linesmoothing', 'on' );
- ceph分布式存储简介
一.Ceph简介: 什么是分布式存储? 我在一个环境当中,有很多很多的服务器,服务器上也有它自己很多的硬盘,我通过软件的形式把若干服务器都收集起来,部署成一个软件,在这个逻辑的软件里可以同时看到我若干 ...
- P1058 立体图题解
小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m \times nm×n的矩形区域,上面有m \times ...
- python基础练习题7
1.创建Person类,属性有姓名.年龄.性别,创建方法personInfo,打印这个人的信息2.创建Student类,继承Person类,属性有学院college,班级class,重写父类perso ...
- 解决:java compiler level does not match the version of the installed java project facet错误
java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclip ...
- UITextField实时监听输入文本的变化
[textField addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditing ...