C#的基于.net framework的Dll模块编程(二) - 编程手把手系列文章
今天继续这个系列博文的编写。接上次的篇幅,这次介绍关于C#的Dll类库的创建的内容。因为是手把手系列,所以对于需要入门的朋友来说还是挺好的,下面开始咯:
一、新建Dll类库;
这里直接创建例子的Dll类库项目,至于项目文件目录的存放布局后面的例子中会介绍。
在解决方案资源管理器上鼠标右键,选择“添加”,“新建项目”;

打开的窗口中,选择“C#”,“Windows”,“库”。

选择“类库(.NET Framework)”,点下一步;
1)项目名称输入该DLL类库的名称,建议前面是公司名,然后才是Dll类库的名称;
2)位置默认是该解决方案文件sln所在的目录,建议放在这里;
3)框架,选择最新那个,这里是4.8.1。
4)底部会显示该类库的创建位置,看下是否正确,否则点中间的位置右侧的省略号进行修改;

点击创建,将创建该DLL类库项目;
右侧是默认新建的内容;

1) 顶上的Properties是该项目的属性,里面将存放DLL程序集的信息AssemblyInfo.cs,以及其它程序集相关的文件,这里不用去更改它;
2) 中间为该DLL程序集引用的其它类库的名称,以后需要的相关的程序集都在这里进行添加;
3) 底下的Class1.cs文件是默认建立的一个C#的代码文件;
4) 在“引用”节点上鼠标右键,点击“添加引用”,打开引用窗口;

1) 第一项是“程序集”,这里是VS 2022提供的程序集,提供了一些通用的函数;

2) 中间的“项目”,是当前解决方案中的相关的程序集,能够在此进行引用添加其它DLL类库的程序集;这里例子有其它的Dll程序集,不过需要说明的是必须保证程序集的唯一引用性,不能循环引用,即相互引用(VS 2022会提示无法循环引用)。

3) 然后底部的“浏览”,能够引用其它已经编译好的Dll文件程序集;(这里的Dll程序集必须是.net编译的,其它的VC++等Dll文件不能在此进行引用)

左边打开的是Class1.cs的文本代码编辑窗口,在这里进行输入编辑代码;

C#的基于.net framework的Dll模块编程(二) - 编程手把手系列文章的更多相关文章
- CefSharp基于.Net Framework 4.0 框架编译
CefSharp基于.Net Framework 4.0 框架编译 本次源码使用的是Github上CefSharp官方的79版本源码 准备 IDE Visual Studio 2017 Enterpr ...
- step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework
文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...
- KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)
目录 . 相关阅读材料 . <加密与解密3> . [经典文章翻译]A_Crash_Course_on_the_Depths_of_Win32_Structured_Exception_Ha ...
- KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态
KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 <寒江独钓>内核学习笔记(5) 继续我们的线程相关的数据结构的学习.接下来我们学习 KTH ...
- Apworks框架实战(六):使用基于Entity Framework的仓储基础结构
在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证.在这篇博文中,Jacek 分享了 Wars ...
- openerp模块收藏 基于Lodop的报表打印模块(转载)
基于Lodop的报表打印模块 原文:http://shine-it.net/index.php/topic,7397.0.html 前段时间写了个小模块,来解决OE中报表打印不方便的问题.借鉴了 @b ...
- 利用OllyDebug查看程序调用的dll模块
最近在做一个Qt项目,在产品发布的时候一直为找不到程序到底缺少了哪些dll组件而困扰.具体问题是,在我的项目中使用到了QMediaPlayer播放一段音频文件,我使用的开发环境的Win7 32位,而在 ...
- 加载DLL模块
关于Windows平台下应用程序加载DLL模块的问题. 本文将讨论以下问题: (1)Windows可执行程序会从哪些目录下加载DLL. (2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE ...
随机推荐
- C#串口开发之SerialPort类封装
目录 SerialPort类 参数封装 控件操作封装 SerialPortClient类实现 SerialPortClient类使用 测试Demo 参考文章 SerialPort类 微软在.NET中对 ...
- 【图算法】图卷积的演变-从谱图卷积到GCN
基础 傅里叶变换 傅里叶级数是对周期为T的确定性信号做展开,而傅里叶变换将周期推广到无穷,能对具有任意长度的信号做展开. 傅里叶级数和傅里叶变换是什么关系? 如下为傅里叶变换公式: \[\hat{f} ...
- 超低功耗mcu芯片AMA3B 开发备忘之初串口打印
一 前言 对于软件工程师来说,没什么比看到一个hello world的打印更让人感觉兴奋了.调试芯片,很多人都知道,hello world这个打印意味着什么. 二 软硬件准备 1 一个AM ...
- 高级java进阶之类的卸载
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息.常量.静态变量以及方法代码的内存区域,叫做方法区. 常量池:常量池是方 ...
- .Net Core 使用 TagProvider 与 Enricher 丰富日志
TagProvider [LogProperties] 与 [LogPropertyIgnore] 如果用在DTO不存在任何问题,如果用在Domain实体上,可能有点混乱. 您可能不希望因日志记录问 ...
- C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据
Chapter 3 线程间共享数据 3.2 用互斥锁保护共享数据
- vue项目中添加水印效果
新建js文件:例如warterMark.js 'use strict' let watermark = {} let setWatermark = (str) => { let id = '1. ...
- 正则表达式 vs. 字符串处理:解析优势与劣势
1. 正则表达式起源与演变 正则表达式(Regular Expression)最早由美国数学家斯蒂芬·科尔内基(Stephen Kleene)于1956年提出,用于描述字符串的模式匹配规则.随后在计算 ...
- ZYNQ7000系列学习之TF卡读写(2)
ZYNQ读写实验(2) 1.实验原理 在TF卡读写实验1中,已经将每一个步骤都做完了,但是最后得到的结果是错误的.那个时候由于TF没有格式化,显示的是错误信息.在格式化后,再次实验,得到了预期的结果. ...
- 【已解决】严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
Web开发项目中,启动Tomcat时出现错误 这是因为之前启动了Tomcat服务器,但是没有正常的关闭,造成8080端口号的进程依旧在系统后台运行着,导致Tomcat重启失败. cmd taskkil ...