从此博文开始分几篇介绍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. redis同步锁的真实应用场景

    一.问题由来 现在正在做的小程序后台中,有一个功能叫做高光时刻,在操作高光时刻的时候,可能会有多个用户来同时想操作这个功能,可是在同一时间只能 有一个用户能够操作.刚开始做的时候,自己的做法是在red ...

  2. Dendron vscode笔记插件 F12 可自动跳转 页面 很实用

    Dendron vscode笔记插件 F12 可自动跳转 页面 很实用 Dendron 技巧汇总 新建工作区 新建一个 工作区 建立一个空目录 然后 ctrl + shift P 输入 init 就可 ...

  3. AutoTipZen 实时根据文字是否溢出 提示title

    AutoTipZen 实时根据文字是否溢出 提示title <template> <div ref="autoTipRef" @mouseover="o ...

  4. Android 优雅的Activity回调代码封装

    原文地址: Android 优雅的Activity回调代码封装 - Stars-One的杂货小窝 之前提到Jetpack架构组件学习(3)--Activity Results API使用 - Star ...

  5. buntu中查看网卡信息的基础知识

    ubuntunetworkexpress工具网络access Ubuntu 中,通常有线网卡为eth0,无线网卡则为wlan0,后续增加的以此类推(可能某些无线网卡型号命名为eth1,而非wlan0) ...

  6. 简单使用vim编辑器的用法

    vim的使用笔记可以涵盖很多内容,以下是一些基本操作和常见命令的简要总结: 启动Vim 打开或创建文件:vim filename 基本模式切换 正常模式(Normal Mode):启动时默认进入此模式 ...

  7. 大年学习linux(第三节---用户管理)

    三.用户管理 用户和用户组操作命令 ld Finger Pwck 检查/etc/passwd配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd和/etc/shadow的信息是否一致 ...

  8. Android端Charles抓包

    目录介绍 01.下载安装 02.抓包代理设置 03.抓包Https操作 04.抓包原理介绍 05.抓包数据介绍 06.常见问题总结 07.Android拦截抓包 01.下载安装 下载地址(下载对应的平 ...

  9. 2022北航软件研究生入学考试991考试大纲-数据结构与C

    991"数据结构与C语言程序设计"考试大纲 "数据结构与C语言程序设计"考试内容包括"数据结构"与"C语言程序设计"两门 ...

  10. 【UE插件DTRabbitMQ】 虚幻引擎蓝图连接RabbitMQ服务器使用插件说明

    本插件可以使用蓝图连接 RabbitMQ服务器,并推送或者监听消息. 下载地址地址在文章最后. 1. 节点说明 Create RabbitMQ Client - 创建RabbitMQ客户端对象 创建一 ...