自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件和芯片来改变世界

  • 博客(3089)
  • 资源 (44)
  • 收藏
  • 关注

原创 鸿蒙OS应用开发的开发环境

当你想投入到这个生态系统里的时候,首先是使用它,这是最方便的方法,比如买一台带有鸿蒙系统的手机,并且不断地使用它,提出你自己的建议,让它进行完善和改进。在这里主要开始学习开发鸿蒙系统的应用,由于鸿蒙系统发布的时间不是很久,当然是相对安卓和IOS来说,因此它是一个全新的系统,并且致力于创建一种更方便的软件方式,它引入不同于以往的软件开发语言,以及不同的界面接口。这时候,就可以看到应用的名称,包的名称,保存的位置,编译的SDK版本,运行模式,是否可视化编辑,语言,兼容性API,设备类型。

2023-12-07 12:31:53 736

原创 C#里使用libxl的对齐/边框/颜色

可以把这里的格式做一个初步的了解,根据实际情况来选择不同的内容显示。以便表示一些重要的信息,这样才能让人们一眼就看到需要关注的信息。一份好的EXCEL文件,通道会有不同的颜色和边框来表示。

2025-03-30 18:08:48 47

原创 C#里实现C#脚本单步执行的信息提示

比如在每一行代码后面添加调试信息代码,这样才能达到我们的目标。如果可以把脚本当作单行执行,并输出信息,那么调试就方便很多。如果一个函数作为一个单位,那么调试的颗粒度有点大,要实现上述的目标,需要对于进行调试的代码进行处理。我们常常需要调试脚本,查看脚本是否运行正确。这样对于写脚本人员来说,显然要求有点高。然后再对这样的代码进行编译和运行。当使用C#语言作为脚本运行时,

2025-03-29 18:25:13 288

原创 C#里使用C#语言作为脚本运行的方法

其实可以使用脚本的方式,因为客户可以随便根据脚本来做数据的调整。面向的客户也越来越多,那么需求也越来越多,在C#里使用C#作为脚本是最简单的方式。还有很多的需求是需要去现场调试的。随着开发的软件越来越复杂,这样就导致需要大量的人力。怎么样才能避免这个问题呢?

2025-03-29 17:22:08 81

原创 C#里使用libxl的数字格式

还有科学计算表示的数字使用小数点位数与普通货币也不一样。比如表示货币数字时,与表示普通序号的数字就不一样。由于EXCEL里可以表示不同的数字格式,

2025-03-22 20:11:32 209

原创 C#里使用libxl来插入行或列

在这里使用函数InsertRow和InsertCol函数。

2025-03-22 19:32:32 240

原创 C#里使用libxl来对列或行进行分组显示

这时候需要使用函数GroupCols和GroupRows来对这些列或行进行分组。需要把某些行进行隐藏起来,那么就需要使用到行或列进行隐藏的操作。分组不能出现交叉的情况,否则会抛出异常。有时候由于EXCEL里的行数很多,

2025-03-22 19:23:11 329

原创 C#里使用libxl来合并单元格的例子

通过不同的单元格的合并,可以生成不同的表格。操作EXCEL的文件格式是常用的功能,

2025-03-21 23:57:08 148

原创 C#代码经过编译生成CIL代码

这张图体现了 .NET 平台的核心特性:通过 CIL 实现不同语言的统一编译输出,再借助 JIT 编译器在运行时将 CIL 转为机器码执行,最终达成跨语言开发和跨平台运行的能力。////解释:在上述微软中间语言(MSIL)中,存在长度为一或两个字节的操作码。所有其他类所继承的基类声明包含在(微软核心库动态链接库)中。在Main()方法里,ldstr指令将字符串 “GeeksforGeeks” 加载到栈上。接着调用静态的函数,字符串从栈中弹出。最后,ret指令标志着函数调用结束。

2025-03-19 11:04:06 38

原创 C# 模块里cctor函数: mono_runtime_run_module_cctor

静态构造函数用于初始化类的静态成员,它在类的任何静态成员被引用之前或创建类的第一个实例之前自动执行,并且每个类只能有一个静态构造函数。静态构造函数没有访问修饰符,也没有参数。静态构造函数不能直接调用,而是由.NET 运行时自动调用。静态构造函数在类被加载时执行一次,且仅执行一次。

2025-03-15 11:04:06 152

原创 使用python来写出数千万行的excel文件的方法

如果采用内存的方法,内存会比较高的。做了一个测试,100万行11列,就要占用3个G内存。这时就需要采用流式写入EXCEL文件,才能输出上千万行数据。但是用户又不想分开文件保存,必须写在一个EXCEL文件里。通这样的方式,就可以写出上亿行的数据。由于数据量越来越大,

2025-03-13 15:16:52 69

原创 C#里最快添加log4net的日志输出

在C#里添加日志支持最快的方法,就是使用log4net。因为它是软件发布之后时行跟踪,调试和改进的关键数据。如果没有日志的软件,必然是一个不成熟的软件。因为它没有办法进行软件的质量改进。日志输出是每一个软件必须的功能,这样就可以有运行的库了。

2025-03-07 15:34:26 170

原创 C#里定义对象序列化保存的例子

C#里定义对象序列化保存的例子由于很多软件有自定义参数,不同的时间使用不同的参数,不同的用户使用不同的参数,这些参数都需要保存到磁盘,以便软件关闭之后再加载出来。面对这样的需求,就需要把软件里参数进行序列化保存,当软件启动时,再把这些参数恢复过来。下面的例子就是使用SerializationInfo 来实现: 代码解释:定义可序列化类:序列化过程:反序列化过程:输出结果:通过这个示例,你可以看到如何使用 类来实现自定义类的序列化和反序列化。

2025-03-03 09:34:25 166

原创 Mono里运行C#脚本44—System.Console.WriteLine()函数的生成过程

类构造函数(静态构造函数)主要用于初始化类的静态成员,它会在类的任何静态成员被引用或者类的实例被创建之前自动执行,并且每个类的静态构造函数只会执行一次。它是从函数mono_runtime_class_init_full开始,它是对整个类的运行时进行初始化,以便这个类可以运行其中的函数。前面已经分析WriteLine() 的调用过程,接着就会找到对应的类Console,然后再找到此类的信息,生成一个类的。要想扫行WriteLine函数,就需要先初始化类的运行环境。获取.cctor的方法名称。

2025-03-02 12:51:53 201

原创 C#里创建异步管道服务器通讯

就是当连接过来的管道没有关闭时,服务端也不能退出程序,它会一直等到客户端关闭为止。在C#里使用同步的管道服务,有一个问题很难处理,因此,使用异步的方法就可以避免这个问题。也没有别的办法去停止这个等待的过程。

2025-02-28 14:26:15 305

原创 C#里使用MSMQ来实现跨进程通讯

消息数量统计:使用 queue.GetMessageEnumerator2() 方法获取队列中消息的枚举器,然后通过 foreach 循环遍历枚举器,每遍历到一条消息,messageCount 计数器就加 1。队列路径定义:queuePath 变量指定了要查看的消息队列的路径,这里使用的是本地私有队列的路径格式。性能影响:遍历队列中的所有消息来统计数量可能会对性能产生一定影响,尤其是在队列中消息数量较多的情况下。一是可以提高并发开发的速度,二是减少一个软件的复杂度。结果输出:最后输出队列中的消息数量。

2025-02-27 14:11:04 209

原创 C#里计算坐标轴的刻度步长的方法

ZedGraph 可以根据曲线中数据值的范围自动选择合适的坐标轴刻度最小值、最大值和步长值。或者,你也可以手动设置其中任意一个或所有这些值,之后刻度选择逻辑会尝试为那些仍处于自动模式的剩余参数选取合适的值。这个数量级会被转换为最高有效数字,然后将其调整为 1、2 或 5,以使刻度成为 10 的整数约数。刻度选择逻辑基于这样一个假设:最符合人类认知习惯的步长应该是 10 的整数约数。也就是说,步长应该是 1、2 或 5 乘以 10 的某个幂次方。通过上面的计算,就可以计算出来以1、2、5为刻度的坐标轴刻度。

2025-02-25 13:32:46 163

原创 C#里使用消息进行进程间通讯

在窗口应用程序之间进行进程通讯,最为方便的方法就是使用WM_COPYDATA消息。当软件开发越来越多功能时,就会导致每个软件代码急剧上升,从而把系统变得越来越复杂。把程序功能分开之后,这样就可以把程序的代码控制在合适的范围内。但是程序与程序之间,还需要协同工作,那么就需要相互进行通讯。这时,我们应对的办法,就是把程序功能拆分。提高了开发人员的效率,减少了系统的复杂度。下面就是使用消息通讯的例子,

2025-02-24 09:47:10 200

原创 Mono里运行C#脚本43—System.Console.WriteLine()函数的生成过程

上面这段代码只是给出一个调用方法void class [mscorlib]System.Console::WriteLine(string)的JIT过程,并没有给方法WriteLine(string)生成代码,这个需要后面将要运行之后,才会找到相应的代码进行编译,才会生成X86-64的代码。要找到这个代码,就需要从文件mscorlib里查找,分别找到命名空间System,类名Console,然后再找到方法WriteLine(string)。在这里调用的代码是库里代码,与前面内部嵌入的函数会不一样。

2025-02-22 12:34:12 127

原创 Mono里运行C#脚本42—mono_arch_create_generic_trampoline函数的生成的汇编代码

下面的代码要与mono_magic_trampoline函数的代码一行一行地对比地查看。才能知道跳板代码怎么样调用mono_magic_trampoline函数。为了更详细地分析跳板代码的运行机制,所以需要查看这个跳板生成的代码,

2025-02-09 22:09:44 181

原创 Mono里运行C#脚本41—编译MonoEmbed::gimme()调用的过程

也就是说在Main()函数进行JIT阶段,就会对函数 MonoEmbed::gimme()进行编译,但不会在此阶段生成它的JIT代码。所以函数mono_lookup_internal_call会找此函数的地址,这样就可以调用函数进行运行了。当Main函数进行JIT时遇到这行代码,就会在函数mono_method_to_ir里面处理。所以在编译这个函数时,就会对函数 MonoEmbed::gimme()进行编译。当运行到这行代码时,就会查找调用方法的属性,也就是方法的唯一签名。

2025-02-06 11:34:53 204

原创 Mono里运行C#脚本40—mono_magic_trampoline函数的参数设置

由于 REX 前缀占 1 字节,操作码占 1 字节,而 mono_atomic_xchg_ptr 函数要操作的是这个 64 位立即数(8 字节)的存储位置,所以从 orig_code 往前偏移 1 + 1 + 8 = 10 字节是 64 位立即数的起始位置,但由于地址计算是从当前位置开始偏移,所以实际偏移量为 11 字节(考虑到指针运算的起始点),即 orig_code - 11 指向的就是需要修改的 64 位立即数的起始地址。因此也会把这些参数传送给函数common_call_trampoline,

2025-02-04 12:55:40 186

原创 Mono里运行C#脚本39—mono_jit_runtime_invoke函数

当脚本MonoEmbed里的Main ()函数JIT编译完成之后,那么就需要在C代码里运行受托管的代码,即是C#的代码。要运行托管的代码,这是需要初始化一个运行环境,以便把参数从C代码传送给托管代码,又需要从托管代码返回值传送回到C代码。create_runtime_invoke_info函数会根据传入参数和返回值参数类型来创建此函数名称。在这里是通过函数mono_jit_runtime_invoke来实现这个过程的。这样就创建一个从C调用托管代码的函数返回。这样就可以进入运行Main函数的过程。

2025-02-01 12:44:55 263

原创 Mono里运行C#脚本38—MonoEmbed入口点函数Main的三个阶段的代码对比

可见后面的机器码最长,也最为复杂,却是机器可以执行的代码。这段代码是即将可以运行的代码。

2025-01-30 17:24:26 84

原创 Mono里运行C#脚本37—mono_compile_create_vars函数

它根据给定的类型和操作码,分配适当的寄存器,并调用 mono_compile_create_var_for_vreg 函数来完成变量的创建。在上面的代码里,先调用mono_method_signature_internal函数,在此函数里会使用一个签名的结构MonoMethodSignature。在这里调用函数mono_compile_create_var,它的指令操作码是OP_ARG,表明生成一条返回值的参数指令。然后根据返回值的类型来创建控制流图的返回值语句cfg->ret。保存在cfg->ret里。

2025-01-30 17:13:34 460

原创 Mono里运行C#脚本36—加载C#类定义的成员变量和方法的数量

还有一种通用类,也就是泛型类型,例如,.NET 类型 System.Collections.Generic.List<T> 具有一个类型参数,它按照惯例被命名为 T。成员klass是保存类相关的信息,first_method_idx是保存方法开始位置,method_count是保存方法的数量,first_field_idx是保存成员变量的开始位置, field_count是保存成员变量的数量。因为我们知道C#语言定义一个类,主要就是定义成员变量,以及那些对此成员变量进行操作的方法,

2025-01-25 17:31:56 384

原创 Mono里运行C#脚本35—加载C#语言基类的过程

先拿到一堆属性,并且是一个类型定义,它的名称是MonoEmbed,并且获取扩展的属性,以及继承的基类名称。但是还有很多功能没有解析的,就是C#语言相关最多的,就是类的加载,以及类语言设计的实现属性,然后到方法的编译,机器代码的生成,再到函数调用的跳板转换,进而解析递归地实现JIT。前面大体地分析了整个Mono运行过程,主要从文件的加载,再到EXE文件的入口点,因此这个类会有特殊的处理,这个类的定义是由入口点函数来带动类定义的过程的。比如类的继承,类的方法的多态,类的虚拟方法,还有类的成员变量等等。

2025-01-25 16:10:27 515

原创 Mono里运行C#脚本34—内部函数调用的过程

它会依据方法的属性和类型,采取不同的编译策略,最终返回编译后的代码指针。这样就可以把调用内部函数的查找任务落实到mono_lookup_internal_call_full_with_flags函数上了。在这里看到查看HASH表icall_hash了,说明前面注册的函数名称,通过这里就可以找到相关的函数。由于调用的是内部函数,不会生成代码,所以就需要调用特别的处理函数compile_special。这个函数提供了对内部注册过的函数进行查找,其实就是对HASH表icall_hash进行检索。

2025-01-24 09:54:06 213

原创 Mono里运行C#脚本33—跳板代码处理调用过程

common_call_trampoline 是一个静态函数,其作用在于处理普通、虚方法以及接口方法的调用与跳转,这些调用和跳转既可能源于即时编译(JIT)代码,也可能来自 LLVM 编译后的代码。当运行前面函数mono_arch_create_generic_trampoline实现的手写汇编代码时,host_mgreg_t *regs:指向主机寄存器状态的指针,用于传递调用时的寄存器信息。周而复此,就可以把整个调用链进行编译并运行,没有调用到的函数是没有进行编译的过程的。

2025-01-23 14:22:47 229

原创 Mono里运行C#脚本32—IL代码中调用指令call的处理过程

若mono_aot_only为真,调用mono_aot_create_specific_trampoline;上面代码接着会调用mono_create_jit_trampoline (domain, patch_info->data.method, error)来创建跳板的代码。mono_create_jit_trampoline函数与前面的跳板初始化函数关联在一起,就可以实现跳板进行调用过程处理。mono_arch_create_specific_trampoline函数是根据不同的CPU架构来实现的,

2025-01-23 11:06:45 81

原创 Mono里运行C#脚本31—mono_arch_create_generic_trampoline

mono_arch_create_generic_trampoline` 函数的主要功能是创建一个通用的跳板(trampoline)代码。此函数根据传入的跳板类型 `tramp_type`、是否为 AOT(Ahead Of Time)编译模式 `aot` 等参数,生成相应的汇编代码,并返回生成的代码缓冲区指针。- 使用 `amd64_pop_reg`、`amd64_push_reg`、`amd64_mov_reg_reg` 等函数生成汇编代码,完成栈帧的设置、寄存器的保存和恢复等操作。

2025-01-19 11:48:02 356

原创 Mono里运行C#脚本30—create_trampoline_code

比如先调用JIT生成Main函数的代码,这时就会发现里面调用其它的函数,这时又需要调用JIT来对后面发现的函数进行JIT编译。// 调用 mono_arch_create_generic_trampoline 函数来创建通用跳板代码。因此就需要使用mono_arch_create_generic_trampoline来初始化通用的跳板代码,// 传入 tramp_type 作为跳板类型,info 的地址用于存储生成的跳板信息。所谓的跳板代码,就是从JIT编译出来的代码对下一个函数的调用中转站。

2025-01-19 11:26:24 138

原创 Mono里运行C#脚本29—mono_trampolines_init

这里调用 `create_trampoline_code` 函数为不同类型的 `trampoline` 创建代码,并将生成的代码存储在 `mono_trampoline_code` 数组中,不同的 `MONO_TRAMPOLINE_*` 是一些预定义的枚举或宏,代表不同类型的 `trampoline`。- `create_trampoline_code`:这是一个自定义的函数,它接收一个表示 `trampoline` 类型的参数,并生成相应的 `trampoline` 代码。

2025-01-19 10:40:09 287

原创 Mono里运行C#脚本28—mono_create_jit_trampoline

它的主要作用是为指定的 C 函数创建调用代码,接收一个描述 C 函数的参数和返回类型的monomethod,并创建调用该函数的代码。- 它们调用 `mono_class_init_trampoline()` C 函数,该函数执行作为跳板参数传递的类的类初始化器,然后将调用类初始化跳板的代码替换为 `NOP`(无操作)指令,以便不再执行该代码。- 当跳板被调用时,它会调用 `mono_magic_trampoline()` 函数,该函数会编译目标方法,并将已编译代码的地址返回给跳板,然后跳板会跳转到该地址。

2025-01-19 10:20:18 157

原创 C#里await Task.Run死锁的分析与解决

需要再次使用int bytesLoaded = await downloading,也就是调用await获取结果再次异步,在这段代码里,GetResAsync()函数是使用await Task.Run来等线程任务执行返回一个字符串结果。第二种是返回结果不要直接等结果,采用再一次异步等结果,即是await res.Result。执行res.Result时,需要等线程执行结果,它采用一个wait函数等线程完成。因为在前面await Task.Run已经在等线程去执行,这时就会造成死锁。这样返回字节的结果。

2025-01-17 15:13:08 309

原创 Mono里运行C#脚本27—X86_64指令寄存器初步了解mono_arch_regname

Mono里运行C#脚本27—X86_64指令寄存器初步了解mono_arch_regname通过前面的分析,我们知道一个程序要运行,要么解释执行,要么编译后执行。JIT是采用即时编译的技术,显然是把程序转换为机器码再运行的。要实现从C#代码到机器码的转换,就需要了解X86_64的指令格式。当然,如果你想转换C#程序到鸿蒙系统上运行,那么就需要了解ARM64的指令格式。如果想转换到龙芯系统上运行,就需要了解龙芯架构指令。因此,JIT是基于不同的CPU架构指令来实现的。

2025-01-14 11:03:19 379

原创 C#里使用libxl里演示输出日期和读取日期数据的例子

在许多西方国家,日期的表示顺序遵循“日-月-年”的规则,即“Day-Month-Year”,例如:12th January 2023。而在某些亚洲国家,如日本和韩国,日期则遵循“月-日-年”的顺序,即“Month-Day-Year”,例如“1月12日,2023年”。总结来说,马来西亚的日期格式遵循“日-月-年”的顺序,其中“日”表示日期,“Month”表示月份,“Year”表示年份。所以EXCEL里处理的日期格式和显示,需要获取不同时区,再根据时区,或者操作系统的格式来判断输出EXCEL的日期格式。

2025-01-11 00:09:21 214

原创 C#里使用libxl设置EXCEL里公式计算的例子

因为公式是一种自动化计算工具,并且可以固化人类的智慧,相当于把复杂的计算功能嵌入到固定的数据处理了。比如一个经验丰富的财务人员,可以编制一个复杂公式计算的表格,只要一个不懂财务的人员,输入每个人的工资,就可以自动计算出来五险一金来了。• 在写入公式时,注意公式字符串中的分隔符应与 Excel 的区域设置一致。因此在很多情况下,需要开发人员把公式固化在EXCEL文件中,这样导出的数据处理,就会自动处理统计的数据。所以EXCEL中的公式是一种非常实用的工具,是一种把复杂计算变成简单处理的工具。

2025-01-10 23:33:51 632

原创 C#里使用libxl读取EXCEL文件里的图片并保存出来

在这里通过GetPicture方法,就可以获取图片数据和图片数据大小,这样可以在内存里处理,也可以把这些数据再次保存成文件,就可以打开了。如果需要把这些图片抽取出来,再保存到系统里,就需要读取这些图片数据,生成合适的文件再保存。因为很多用户喜欢使用图片保存在EXCEL里,比如用户保存一些现场整改的图片。有时候需要读取EXCEL里的图片文件,这样就可以生成一个图片文件保存出来了。在libxl里也提供了这样的方法,

2025-01-10 22:38:57 521 1

原创 C#里使用libxl读取EXCEL文件的例子

因为所有数据都是保存在EXCEL文件里,这时我们能够打开EXCEL文件,并读取。这样就可以把里面的数据取出来了,再通过SQL语句就可以把数据进入到数据库。现在我们有一个任务,就是把里面的数据全部读取出来,然后插入到进销存系统。当你面对这样的需求时,就需要去读取EXCEL文件了。需要使用读取EXCEL文件的API。

2025-01-10 22:00:59 470

胶囊模型的代码

胶囊模型的代码在以下论文中使用: “Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton. 要求 TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级) NumPy (详见http://www.numpy.org/) GPU

2018-02-02

C++读写json文件

https://github.com/nlohmann/json 最好用的C++读写json库

2017-12-09

python抓取天气并分析 实例源码

Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的数据展现。 python抓取广州天气并分析 实例源码

2017-08-28

wix3.11版本安装工具

wix3.11版本安装工具

2017-06-19

WiX3.10版本安装工具

WiX3.10版本安装工具

2017-06-19

GOOGLE的TPU论文

GOOGLE公开TPU的论文

2017-04-06

深度强化学习论文

DQN的论文

2017-03-17

书《深度学习》

2015年,深度学习三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在最新的《Nature》杂志首次合作的发表综述文章《Deep Learning》。本文为该综述文章的中文译文,深入浅出地介绍了深度学习的基本原理,核心优势和未来展望。

2017-03-13

手写识别的训练数据

MNIST训练数据

2017-03-10

俄罗斯方块游戏开发

俄罗斯方块游戏开发培训里的可执行文件,让大家可以查看相关的结果。以便是否参加培训。

2016-11-30

duilib界面库20161116

更新为VC2015编译的duilib,持续重构代码,使用最新的C++14的语法。

2016-11-16

duilib界面库20161017

duilib 界面库

2016-10-17

duilib界面库

duilib界面库,长期维护的界面库,在WIN10和VS2012上编译和开发、测试通过。

2016-10-10

国产8051模拟器

一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器,他的特点是可以模拟多处理器平台,在简单的多工作区间的界面上可以很方便的模拟8051处理器, 最重要的是这个单片机系统可以完全由你自己订制,你甚至可以随意创建自己的多单片机系统,什么SMP 基于串行总线的分布式系统,集群式系统,只要你能想到的,都可以办到,充分发挥你的想象力。现在1.0版本已经基本体现出了这种思想,在以后的版本中将使这一特性变的 更加强大!

2016-09-10

mysql开发管理工具

mysql数据库的开发管理工具。

2016-07-12

mysql-5.5.50-64

windows下的64位MYSQL的版本。

2016-07-10

python-3.4.4

python 3.4的32位的windows版本

2016-07-01

tinyxml2配套源码

在软件开发过程中,为了使软件有灵活的配置,特别像界面这样的配置,同时为了减轻重复开发的任务,需要把客户的个性化需求可以通过配置文件来修改,比如像界面的颜色配置,就可通过配置文件来修改,这时就可以采用XML文件来保存和修改这些参数配置。在不同软件之间进行通讯时,也可以采用XML协议来进行数据交换,特别像WEB服务的调用时,采用传送XML格式是基本的数据交换方式。基于这些任务的需求,需要软件开发人员会在C++里使用xml格式。

2016-06-27

protoc2.5执行文件

protoc执行文件

2016-06-24

protobuf 2.5

protobuf 2.5库代码和工具

2016-06-24

C#程序导出EXCEL文件

主要方便C#程序导出EXCEL文件,需要下载libxl.dll,然后在工程里引用MyLibxl.dll,就可以在C#里操作EXCEL了。

2025-01-09

C#实现简单protobuf学习的例子

C#实现简单protobuf学习的例子, 可以快速地开发protobuf的功能,这样快速地从一个例子来学习。

2024-10-02

开源鸿蒙4.0不能进入桌面的补丁

系统启动后进入不到桌面 当前系统有 bug,当出现此种问题时,需要执行 killall com.ohos.launcher。 里面的hap文件替换applications\standard\hap\下的同名文件。 目录 oh/applications/standard/hap

2024-03-17

开源鸿蒙 4.0 RK3566开发板配置

开源鸿蒙 4.0 RK3566开发板配置 https://mysoft.blog.youkuaiyun.com/article/details/136779805

2024-03-17

使用WeifenLuo.WinFormsUI.Docking的简单例子

使用WeifenLuo.WinFormsUI.Docking的简单例子,演示了简单地使用这个窗口布局库。

2021-12-10

hui_test_form.rar

H-ui.admin_v3.1.3.1的学习和测试例子,前端代码的经典。

2021-08-17

python_example.rar

pybind11的安装和编译的例子,可以快速地生成安装包。

2021-06-24

Mysql_20210615_1.rar

演示访问Mysql库的C++类库QTL

2021-06-15

TestSel1.rar

爬虫日记(28):scrapy使用中间件调用浏览器 相关代码

2021-03-29

ItemDemo_ua.rar

爬虫日记(25):Scrapy 中设置随机 User-Agent 二 的配套代码

2021-03-26

爬虫日记 Imgfn1.rar

爬虫日记(23):用scrapy快速地爬取蜂鸟网图片 相关的项目代码

2021-03-24

ImgDemo1.rar

爬虫日记(22):最简单地抓取图片,仅5行代码 相关配套代码。

2021-03-23

ItemDemo3.rar

爬虫日记(21):使用Pipeline模块写入文件二 的配套代码。

2021-03-23

ItemDemo2.rar

爬虫日记(20):使用Pipeline模块写入文件 的例子

2021-03-22

ItemDemo.rar

实例使用Item对象,适用初学者,《爬虫日记》配套源码。

2021-03-21

svm_hog_data.rar

使用到LineSVC里进行机器学习的训练数据,用来训练手写识别。 配套专栏文章使用,https://blog.youkuaiyun.com/caimouse/article/details/104599920。

2020-03-02

实现numpy的C++库扩展

使用C++来扩展numpy里的数据计算,这时就需要使用numpy的扩展库功能了,下面就来提供一个使用C++编写numpy扩展库的模板,这样大家就要减少很多弯路,减少跌入坑里的成本。这个扩展库的模板是从mahotas库里抽取出来的,经过最大化的简化,这样更加容易理解,更方便学习。

2019-11-24

STM32F407VET6工程模板

玩转STM32里文章配置的代码,这里学习的第一个工程代码,可以作为后继开发的模板工程。

2019-03-14

python web py入门配套源代码

python web py入门- 实现论坛,开发技术:后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。

2018-02-23

webpy演示例子1

webpy演示例子1, 用于配套文章相关资源。python web py入门(9)- 论坛首页的模板中模板 前面已经提到一个模板中可以套用另外一个模板,现在就来看看这个论坛基本布局模板是怎么样的?

2018-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除