从此博文开始分几篇介绍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. husky 7.0.4 git hooks 前端 commit 钩子 git转svn [已解决]

    husky 7 的安装,注意下版本 第一步 安装 cnpm install husky@7.0.4 --save-dev 第二步 在package.json script加入 "prepar ...

  2. stable diffusion安装及使用

    最近在看这个,踩了一些坑,现在有点头绪了,记录如下 安装很简单,直接git下载下来,然后进到根目录执行./web-ui.py,第一次启动你没有模型他会帮你下载个默认模型,我有模型了,就先把这个模型放到 ...

  3. ElasticSearch - 基础概念和映射

    前言 写这篇东西,是因为官方文档看着太痛苦,于是乎想用大白话来聊聊 ElasticSearc (下面都简称ES).所以下文对于 ES 一些概念的表述可能会与官方有出入,所以需要准确的表述和详细定义的, ...

  4. 详解SSL证书系列(5)SSL证书为什么不能好多年签一次呢

    上一篇介绍了详解SSL证书系列(4)免费的SSL证书和收费的证书有什么区别,这一篇我们继续了解一下我们申请的SSL证书为什么不能好多年签一次呢,这样不是更省事吗? SSL证书最多只能签发一年,一年到期 ...

  5. 「AntV」基于众源轨迹数据的三维路网生成与L7可视化

    1. 引言 L7 地理空间数据可视分析引擎是一种基于 WebGL 技术的地理空间数据可视化引擎,可以用于实现各种地理空间数据可视化应用.L7 引擎支持多种数据源和数据格式,包括 GeoJSON.CSV ...

  6. 记录--CSS 滚动驱动动画 scroll()

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 CSS 滚动驱动动画 scroll() animation-timeline 通过 scroll() 指定可滚动元素与滚动轴来为容器动画提 ...

  7. JavaScript知识总结 原型篇

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 对原型.原型链的理解 在JavaScript中是使用构造函数来新建一个对象的,每一个构造函数的内部都有一个 prototype 属性 ...

  8. 记录--uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 需求描述 如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案.本文记录一下,uni- ...

  9. 如何用Flask中的Blueprints构建大型Web应用

    本文分享自华为云社区<构建大型Web应用Flask中的Blueprints指南>,作者: 柠檬味拥抱. 什么是Blueprints? Blueprints是Flask中的一种模式,用于将应 ...

  10. KingbaseES V8R6备份恢复系列之 -- system-Id不匹配备份故障

    ​ KingbaseES V8R6备份恢复案例之---system-Id不匹配备份故障 案例说明: 在KingbaseES V8R6执行备份时,在sys_log日志中出现system-id不一致的故障 ...