C#的基于.net framework的Dll模块编程(四) - 编程手把手系列文章
这次继续这个系列的介绍:
一、命名空间的起名;
对于C#来说,一般命名空间的建议是:公司名(或个人名称).产品名.分类名,比如我这边是用的这个:Lzhdim.LPF.Helper,意思是个人名Lzhdim,加上LPF为平台名,加上Helper分类为帮助类,其它的更长的请读者自己添加。

二、Dll库里的内容;
下面介绍Dll库里的代码内容:
- 静态类;一些函数方法
最常见的库里的内容就是静态类了,这些类提供了一些读者封装的函数,主要以提供函数为主。使用方法也很简单,先声明命名空间,然后直接输入静态类名,用点号,然后就会显示该静态里里的函数了。

比如这里新建了一个Helper库,然后添加分类目录StaticDll,然后新建一个类,命名为StaticDllHelper。


然后,在静态类里添加代码:

这里新建了一个静态类,命名为StaticDllHelper,还定义了一个静态函数TestDllHelper,注意这里添加了static 声明该函数为静态函数。
- 动态类;一些对象
动态类一般为类定义,为对象的模板。笔者这里的建议是,一般动态类直接定义对象,只声明属性,至于该对象的操作,放到静态类里去进行。当然这个是笔者的建议,对于动态类,具有类的特性,一般为封装、继承、多态。下面为一个对象的模板,参考前面新建一个Lzhdim.CharpDll.Module类库,然后添加动态类AppConfigModule:


这里有个例子:
1) 引用该Module库;

2) 声明命名空间;
在顶部using声明该库。

3) 使用该Moudle库;
在上面的例子里,在静态库里的函数中使用该Moudle并进行操作。
下面就用New了一个对象,这里能够直接设置该对象里属性的值。

- 窗体;自定义的窗体
在类库中,还有一种就是类库里定义的窗体。这里也好理解,就是在类库中定义窗体,然后在其它库或应用里进行调用。只需要声明命名空间,然后就能够New一个窗体进行操作了。

注意这里需要引用System.Drawing和System.Windows.Forms这两个库。


这里调用该窗体。
1) 只能在EXE应用类里进行调用;

2) 需要New一个窗体;
声明命名空间;New窗体,然后显示。

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 ...
随机推荐
- vue3.0后多环境配置
根目录下创建 .env 每个配置文件中都将包含此文件中的数据,类似于配置文件的全局 .env.development 默认开发环境 对应serve .env.production 默认生产环境 对应b ...
- 使用Dockerfile部署springboot打包jar包
1.docker下载JDK1.8镜像 docker pull java:8 2.进行需要编译的镜像文件目录编写Dockerfile文件 #依赖的父镜像FROM java:8#作者MAINTAINER ...
- KingbaseES 查看函数中最耗时的sql
测试 创建测试环境所需表及函数 create table test1(id int); INSERT INTO test1(id) VALUES (generate_series(1, 10000)) ...
- KingbaseES sys_restore 恢复表时默认不包括表上的索引
前言 最近碰到一个案例,在使用sys_restore恢复指定表时,默认不恢复表上的索引,如果想恢复需要单独指定. 测试过程 [](javascript:void(0) 查看表的有关属性:test=# ...
- KingbaseES 判断字符串包含的几种方法
判断字符串包含的几种方法: 1. position test=# select position('aa' in 'abcd'); position ---------- 0 (1 行记录) test ...
- 论 C++ 中 double 类型的优化问题
是这样的,我在 OI 出题中,std 习惯使用 double,但是求解,在大数据的情况下用 long double,小数据用 double. 虽然这样也没什么问题,但是在 std 中我是不开启 -O2 ...
- 【mybatis踩坑】mybatis获取类型为字符串String的参数自动加引号
今天写了一个简单的测试例子,用mybatis实现新建一个MySQL数据表 整体是JavaWeb项目,下面的代码是不完整的. 这是mapper 1 <?xml version="1.0& ...
- Emgucv以及debugVisualizer下载
1.Emgucv官网 https://www.emgu.com/ Github-- https://github.com/emgucv/ 在release 包中找到对应系统的版本 例如: libemg ...
- 使用Python的turtle模块绘制美丽的樱花树
引言 Python的turtle模块是一个直观的图形化编程工具,让用户通过控制海龟在屏幕上的移动来绘制各种形状和图案.turtle模块的独特之处在于其简洁易懂的操作方式以及与用户的互动性.用户可以轻松 ...
- std::thread 二:互斥量(lock_guard())
*:使用 lock_guard 后,就不可以使用 lock() 和 unlock() *:lock_guard 和智能指针一样,会自动解锁 #include <iostream> #i ...