C#的基于.net framework的Dll模块编程(一) - 编程手把手系列文章
从此博文开始分几篇介绍C#的开发。这次讲讲C#的.net framework的Dll文件类库模块的编程方法。
对于Windows来说,要运行应用程序要基于Dll类库和Exe执行文件。对于笔者来说,模块化的编程方式,就是将一些函数等封装到Dll类库文件中,将这些类库集中和分模块进行编写和管理。就是将应用需要的这些函数从大到小,按照模块化的规则去进行编写,这样在应用开发的时候能够进行分工,便于测试和应用的分发。
到了现在这种编程语言,对于类的概念已经很清晰明了了。C#借鉴了Java的语法,对于面向对象编程,封装、继承、多态的方式也很清晰。反观以前的VB6和VC++的对象,今天在群里与群友讨论C#调用其它编程语言的Dll,在VC++的应用里能够New一个C#的类为对象,并使用其属性和方法,但是在C#里目前没找到New一个VB6和VC++的类为对象的方法,笔者认为只能通过函数的方式去对VC++的类里的变量进行赋值来当做属性的赋值了。
上面说了这么多,下面开始这篇博文的内容吧。
一、打开Visual Studio 2022;
首先必须先安装了VS 2022,具体见系列上一篇博文:https://www.cnblogs.com/lzhdim/p/18100292

打开了欢迎窗体,这里能够在窗体上鼠标左键按下并滑动来移动该窗体(彩蛋)。

如果是第一次打开,直接点下一步;否则到达下面这个窗体。左侧是打开过的项目列表;右侧是操作菜单。点击“创建新项目”。

下面这个窗体,选择右上角的“所有设置”,中间选“所有平台”,右边选“其它”。下面会显示“空白解决方案”。

选中“空白解决方案”,点“下一步”。这里输入解决方案名称,一般是该项目软件的名称,这里的例子是:CSharpDll,点下面的右侧的省略号,选择保存位置,这里是桌面。

点右下角的“创建”,打开了VS 2022的界面。
点击VS 2022的“视图”菜单,点击“属性窗口”和“工具箱”以及“类视图”,将显示这些窗口,然后将这3个窗口拖动顶部的标题栏,将其固定到VS 2022界面的左侧(这个根据个人的喜好放置位置,笔者推荐这个布局)。拖到左侧会显示放置位置(那个位置箭头),将这3个窗口放在同一个布局里。


放置在同一侧,将在底部显示这3个窗口的标题,见下图底部。

放置好窗口后,在界面右侧是“解决方案资源管理器”,点击该标题能够修改解决方案名称,或者在左侧的属性窗口进行更改名称。


这里建议创建下列目录进行存放项目的文件:
1) 新建CSharpDll目录,创建3个子目录;(在此博文的最后将保存此博文记录的内容,直接将这几个目录复制过去即可)。

2) ProjectResource目录放置项目需要的资源文件;

3) 将解决方案文件放到Src目录里;
建议将这几个目录另外存放,以后有新项目的时候直接复制该目录到新解决方案即可,节省时间。
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 ...
随机推荐
- [VueJsDev] 基础知识 - ES6循环使用手册
[VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html ES6循环使用手册 ::: details 目录 目录 ES ...
- C++字符串编码转换
C++中字符串有很多种类,详情参考C++中的字符串类型.本文主要以string类型为例,讲一下字符串的编码,选择string主要是因为: byte是字符串二进制编码的最小结构,字符串本质上就是一个by ...
- idea提交时候忽略改动部分文件
之前因为本地开发环境和线上开发环境有区别,bootstrap.xml里的log存放位置在我本地mac不存在路径,我就只能通过修改log路径才能让项目跑起来.但是,本地修改的东西每次commit时候都显 ...
- 记录转载:uni-app 请求 uni.request封装使用
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 对uni.request的一些共同参数进行简单的封装,减少重复性数据请求代码.方便全局调用. 先在目录下创建 utils 和 common ...
- 基于Python代码的相关性热力图,VIF共线性诊断图及残差四图的使用及解释
注:热力图和共线性诊断图易看易解释,这里不再阐述 残差四图(Residuals vs Fitted Plot,Normal Q-Q Plot,Scale-Location Plot,Cook's Di ...
- 【Spring注解驱动开发】@PostConstruct与@PreDestroy源码的执行过程
写在前面 在前面的<[String注解驱动开发]你真的了解@PostConstruct注解和@PreDestroy注解吗?>一文中,我们简单的介绍了@PostConstruct注解与@Pr ...
- 关于FTP文件传输协议说明,带你了解更详情的文件传输协议
Internet和其他网络上的人与设备之间的通信使用协议进行.您可以说协议定义了对话规则:谁必须在何时发送哪些信息?如果数据没有到达接收者,会发生什么?您如何保护转帐免受错误和犯规?每当我们使用Int ...
- FastJson反序列化1-FastJson基础使用及反序列化流程分析
1.FastJson简介及使用 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Java ...
- KingbaseESV8R6汉字首字母排序
目的 本文目的实现汉字首字母排序. 排序规则和字符集的关系如下. select sys_encoding_to_char(collencoding) as encoding,collname,coll ...
- 【已解决】IDEA项目启动时Maven报错:Downgrade Maven to version 3.8.1 or earlier in settings
报错场景如下: Possible solutions: Check that Maven pom files not contain http repository http://mvn.gt.ige ...