-
使用现成的已经编写好的控件当然是很方便的事情,但是有的时候随着C#编成应用的不断深入,已有的控件已经不能满足实际需求,所以不得不自己在现有控件的基础上扩展功能,...
使用现成的已经编写好的控件当然是很方便的事情,但是有的时候随着C#编成应用的不断深入,已有的控件已经不能满足实际需求,所以不得不自己在现有控件的基础上扩展功能,本程序通过一个扩展button控件功能而形成自己开发的控件,可以给CSharp开发者一个简单明了的参考。简单不失一般性-use off-the-shelf component has prepared a good course is a convenient thing, Some, however, when C# organization with the in-depth application, the controls have already unable to meet the actual demand. So I have to own the existing controls on the basis of the functional expansion, The procedures through an expansion button controls its own function and the development of the controls, CSharp can give developers a simple reference. Simple without loss of generality
- 2022-04-12 10:56:58下载
- 积分:1
-
C#制作简单的倒计时程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _01Timer
{
public partial class Form1 : Form
{
System.DateTime TimeNow = new DateTime();
TimeSpan TimeCount = new TimeSpan();
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
- 2022-03-01 00:39:36下载
- 积分:1
-
可执行五子棋,绝对可以啊,大家快下吧,哈哈 哈哈 哈哈 哈
可执行五子棋,绝对可以啊,大家快下吧,哈哈 哈哈 哈哈 哈 -everything is possible,you can t miss
it。yeah yeah yeah yeah yeah yeah
- 2022-04-09 17:37:33下载
- 积分:1
-
编译原理综合实验
《编译原理综合实验》作为《编译原理》课程的延伸,其目的是让同学动手设计和实现一个简单语言的编译器和解释器。通过上机实践,来设计这个相对完整的编译器设计,一方面可以使学生增加对编译程序的整体认识和了解——巩固《编译原理》课程所学知识,另一方面,通过上机练习,学生也可以学到很多程序调试技巧和设计大型程序一般的原则,如模块接口的协调,数据结构的合理选择等等。
- 2023-03-21 09:00:04下载
- 积分:1
-
XLT Unity3D 热修复示例源码
使用ILRuntime实现的类似XLUA功能的Unity3D下热修复BUG的解决方案请使用Unity2019.2.17f1版本打开,其他版本问题,请自行修复报错提示!Unity3D 5.x版本以下可以使用Unity4.7.2分支~ 和XLUA一样的地方和XLUA原理类似,注入和XLUA基本一致。 不一样的地方使用C#来进行代码的热更,避免项目内lua与C#代码交叉混杂,修复BUG时,需要C#一份,lua一份。 目录以及文件说明: Project-----Assets/XIL --- 所有XIL所用到的文件----Assets/XIL/ILSource --- ILRuntime插件源文件----Assets/XIL/Scripts --- 注入以及初始化代码----Assets/XIL/Auto --- 自动生成注入的代码以及自动生成的委托和函数的注册(如有此目录下的脚本报错,则可以直接删除此目录,然后重新生成委托,CLR绑定以及重新注册注入类型)----Hot --- 补丁源文件存放目录----Hot.sln --- 补丁源文件VS解决方案----DyncDll.csproj --- 补丁项目工程文件----Data/DyncDll.dll --- 补丁dll文件----Data/DyncDll.pdb --- 补丁dll的调试文件使用步骤以及菜单项说明:注意:菜单项会根据是否开启热更宏而有所不同 XIL/插件/开启 -- 开启热补丁宏XIL/插件/取消 -- 关闭热补丁宏XIL/插件/PDB开启 -- 加载PDB调试文件XIL/插件/PDB取消 -- 不加载PDB调试文件XIL/注册需要热更的类 -- 生成注入所需要的成员接口XIL/取消需要热更的类 -- 清除注入所需要的成员接口XIL/一键清除 -- 清除自动生成的脚本XIL/一键生成 -- 自动生成委托注册以及注入所需要的脚本XIL/委托自动生成 -- 热更当中操作C#层的委托,需要注册委托相关的类型以及转换代码 这里可自动分析项目当中所有用到的委托,自动注册XIL/清除委托自动生成的脚本 --清除委托自动生成的脚本,删除一些C#脚本,或修改,有可能引起报错,这时可以清除掉自动生成的注册脚本XIL/CLR绑定 -- 非反射的方式调用C#层的接口,可大幅度提高运行效率,一些常用的接口可考虑在GenerateCLRBinding文件当中添加需要CLR绑定的类型。XIL/Hotfix Inject In Editor -- 编辑器下注入接口只需要两步即可1 先开启补丁宏2 点击一键生成初始化以及资源接口1 需要在项目启动或适当位置调用初始化接口:wxb.hotMgr.Init();2 非编辑器下,需要自己创建加载文件的接口,可参考编辑器下的资源加载类EditorResLoad。生成补丁dll1 打开Hot解决方案2 替换DyncDll工程依赖UnityEngine.dll以及UnityEngine.UI.dll的文件,在目录Hot下,默认是Unity2018.2.11f1版本的,可以替换为自己项目对应的版本3 编译运行DyncDll工程,编译成功,即可在Data目录下生成补丁库。如何添加需要热更的类型:1 使用HotfixAttribute属性宏来修饰类型2 默认情况下所有类型都会被热更注入,如需要自己调整,可修改源文件ExportIL.cs里,FixMarkIL接口,自定义需要热更的类型生成静态DelegateBridge字段名称的规则 没有同名函数,则固定使用"__Hotfix_函数名"方式 有多个同名函数,对这些同名函数进行排序,排序规则如下(可参考接口wxb.Editor.Hotfix.getDelegateName的逻辑):1 参数个数少的在前2 进行字符串拼接,组成key值,规则如下"返回值全名 函数名(参数类型全名1,参数类型全名2,...)",之后通过key值比较,理论上,不同函数,key值是不会相同的 排序之后,取得对应函数在数组当中的下标来进行拼接如何,规则如下"__Hotfix_函数名_下标"的方式 为什么排序,主要是希望能够一眼看过去就知道函数对应的下标是多少,方便Hotfix,以及保证源脚本不变的情况下,每次Hotfix生成的字段名是一致的 如何替换函数一般有三种方式 通过函数名直接替换hotMgr.ReplaceFunc,可参考函数HotHelloWorld.Reg 通过自动生成的接口DelegateBridge对应的字段名,可直接使用hotMgr.ReplaceField,可参考函数HotHelloWorld.Reg 通过添加属性来自动注册,可参考脚本HotHelloWorld.cs与HotTemplate.cs,这里简单说明下, 要替换一个接口,要知道至少三个信息 替换的原类型 替换的接口对应的DelegateBridge字段的名字 热更当中,要替换的MethodInfo可添加属性ReplaceType到热更的类当中,表示此类型下的接口,默认替换的类型可添加属性ReplaceFunction到热更的接口当中,表示此接口需要替换哪个类型的哪个接口,可使用三种方式初始化1 ReplaceFunction(System.Type type) 替换type类型下同名的接口2 ReplaceFunction() 替换ReplaceType类型下同名的接口3 ReplaceFunction(string fieldNameOrTypeName), fieldNameOrTypeName值前缀不同,有不同的含义 a __Hotfix_开头,替换ReplaceType类型fieldName字段对应的接口 b 替换类型全名为fieldNameOrTypeName下同名的接口4 ReplaceFunction(System.Type type, string fieldName) 替换type类型fieldName字段对应的接口5 ReplaceFunction(string type, string fieldName) 替换类型全名为type下fieldName字段对应的接口 一般在没有同名函数情况下,可使用1,2种方式注册,有些类型为非公有类型的,可通过3,5接口,通过类型名来注册有同名函数情况下,就需要使用3,4, 5方式进行注册,可参考HotHelloWorld.cs脚本 通过属性进行自动注册的,假如在类型中含有对应DelegateBridge静态字段的Hotfix变量,则会自动对此变量进行赋值,保存一些参数在实际使用补丁方式热更时,经常遇到一些,只是需要在原有函数之前或之后添加一些代码的情况,这时,你可以通过Hotfix来执行原先代码可参考HotHelloWorld.Start的使用建议使用第3种方式进行接口替换 建议:最好安装下.NET Reflector,可用来反编译被注入的dll,查看源文件,可加深理解XIL的实现原理。项目下文件Library/ScriptAssemblies/Assembly-CSharp.dll这u3d生成的dll文件,原理上,也是修改此文件实现热更新功能,可使用.NET Reflector进行反编译查看源码 热更下模拟MonoBehaviour组件,用法可以参考hotScripts下脚本,可以做到平时在非热更环境下开发调试,到要发版本时再转换为热更方式Unity5.6以下版本,编辑器下使用的Mono库,会报错,应该是Unity3D的Bug。可以使用源文件来替换dll,源文件在压缩包Mono.Cecil.zip下,可解压此文件,放到在Assets/XIL/Scripts/ILHotfix/Editor/下,并删除这三个Dll(Mono.Cecil.dll, Mono.Cecil.Mdb.dll,MonoCecil.Pdb.dll)
- 2020-11-27下载
- 积分:1
-
Ds1302
时钟芯片ds1302驱动
读取这几个寄存器来获取实时时间和日期。这几个寄存器的说明如下:
1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当初始上电时该位置为1,时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开始运行。
2、小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示PM。在24小时模式时,位5是第二个10小时位
3、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。
- 2023-03-25 00:30:04下载
- 积分:1
-
quazip 解压缩源码
quazip 采用qt 进行解压和压缩,本源码来源官网,可以生成a文件和dll 文件,使用时将a文件和dll文件加入工程中,另外要将头文件加入到工程之中。经本人测试可用
- 2022-01-29 00:49:38下载
- 积分:1
-
序列密码A5算法的C语言实现
A5算法是在数字通信中应用较多的一种序列密码算法,本代码利用c语言实现了这一算法,本代码主要生成A5的01比特流。可以以此为基础实现对数据加密,也可以对该代码生成的01比特流的随机性进行测试以检验A5的安全性
- 2022-12-13 04:35:04下载
- 积分:1
-
TEF6686源码
TEF6686实例开发,优化停台参数。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 2022-02-28 10:11:29下载
- 积分:1
-
STC15 ESP8266串口WiFi模块 AP+STATION 模式测试程序
STC15 ESP8266串口WiFi模块 AP+STATION 模式测试程序,本人亲测通过,下载烧录后用有人网络助手连接,发送程序内的代码,即可控制三位LED灯的亮灭,可以再次程序做相应的修改,可以完成想要实现的功能。
- 2022-01-24 15:57:56下载
- 积分:1