从此博文开始分几篇介绍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模块编程(一) - 编程手把手系列文章的更多相关文章

  1. CefSharp基于.Net Framework 4.0 框架编译

    CefSharp基于.Net Framework 4.0 框架编译 本次源码使用的是Github上CefSharp官方的79版本源码 准备 IDE Visual Studio 2017 Enterpr ...

  2. step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework

    文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...

  3. KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 《寒江独钓》内核学习笔记(5)

    目录 . 相关阅读材料 . <加密与解密3> . [经典文章翻译]A_Crash_Course_on_the_Depths_of_Win32_Structured_Exception_Ha ...

  4. KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态

    KTHREAD 线程调度 SDT TEB SEH shellcode中DLL模块机制动态获取 <寒江独钓>内核学习笔记(5)   继续我们的线程相关的数据结构的学习.接下来我们学习 KTH ...

  5. Apworks框架实战(六):使用基于Entity Framework的仓储基础结构

    在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...

  6. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  7. 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

    本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证.在这篇博文中,Jacek 分享了 Wars ...

  8. openerp模块收藏 基于Lodop的报表打印模块(转载)

    基于Lodop的报表打印模块 原文:http://shine-it.net/index.php/topic,7397.0.html 前段时间写了个小模块,来解决OE中报表打印不方便的问题.借鉴了 @b ...

  9. 利用OllyDebug查看程序调用的dll模块

    最近在做一个Qt项目,在产品发布的时候一直为找不到程序到底缺少了哪些dll组件而困扰.具体问题是,在我的项目中使用到了QMediaPlayer播放一段音频文件,我使用的开发环境的Win7 32位,而在 ...

  10. 加载DLL模块

    关于Windows平台下应用程序加载DLL模块的问题. 本文将讨论以下问题: (1)Windows可执行程序会从哪些目录下加载DLL. (2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE ...

随机推荐

  1. Alt+Space 快速打开切换程序 - Everything - AutoHotKey

    Alt+Space 快速打开切换程序 - Everything - AutoHotKey 需求 电脑切换任务 需要用鼠标找,效率比较低,用快捷键Alt+Space 打开列表,输入指定关键字回车,切换或 ...

  2. 摆脱鼠标系列 - 百度搜索 - 火柴 - 快捷键 Ctrl两次

    摆脱鼠标系列 - 百度搜索 - 火柴 - 快捷键 Ctrl两次 有两款软件 utools 和 火柴,试用后觉得火柴符合试用功能 这里只用网络搜索 其他功能均不用 搜索用双核浏览器 因为用的老的chro ...

  3. vue3 markdown 读取文件的两种方法 有gitee发布地址

    方法一: markdown-loader html-loader import的时候就转换成html了,每次需要build,但是可以本地双击就能看,放哪个目录页不限制 方法二: axios + mar ...

  4. ubuntu环境下python下使用OpenCV库读取USB摄像头的画面

    一 概念 OpenCV是一个开源的计算机视觉和机器学习软件库.它可以使用pip命令行中的以下命令安装:"pip install opencv-python" 这个做视觉处理,非常的 ...

  5. python tcp socket 源码分享

    服务端的源码: import socketserver class Handler_TCPServer(socketserver.BaseRequestHandler): ""&q ...

  6. Uni-App 实现资讯滚动

    项目需要实现资讯的滚动,使用了Swiper组件,实现了首页头部的资讯滚动,简单地做下笔记 效果 实现说明 主要是使用了Swiper可以自动滚动的特性来实现,左边是一个图片,右边则是Swpier,且姜S ...

  7. 移远EC20 4G模块Linux驱动移植和测试

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  8. uniapp中引入Leaflet

    1. 引言 uniapp中自带有map组件,并且自带的map组件有常见的显示地图.绘制点线面的功能 但是,它存在以下问题: 收费,自带的map组件使用的是高德.腾讯的地图,无论使用什么样的功能,即使只 ...

  9. 说说你对vue的mixin的理解,有什么应用场景?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现.其他类可以访问mixin类的方法而不必成为其子类 Mixi ...

  10. Ubuntu安装OpenOffice

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/quantum7/article/det ...