自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1344)
  • 资源 (60)
  • 收藏
  • 关注

转载 C# 如何解决SplitContainer设置成透明时闪烁的问题

转载地址:https://zhidao.baidu.com/question/497293972425324804.html现在使用splitContainer1.GetType().GetProperty(“DoubleBuffered”, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(splitContainer1, true, null);splitCont

2021-11-25 15:48:43 590

转载 C# WinForm 用户自定义控件UserControl闪烁的问题

转载地址:https://blog.csdn.net/aoshilang2249/article/details/45251711使用WinForm开发,当使用了大量的用户自定义控件UserControl时,界面拖动或切换时就会出现闪烁的问题。解决方法主要就是重写UserControl和Form的CreateParams方法。前端调用UserControl的窗体Form(我的代码是UserControl也可以)这样写:(通俗的讲,就是在Form里new了UserControl,Form这个代码里实现下面

2021-11-19 15:32:59 893

转载 C#:使用双缓冲让界面绘制图形时避免闪烁10

以前做用户控件的时候喜欢拿已有的基础控件来拼。发现这样做用户控件比较方便。但是在控件投入大量使用之后,发现这种做法对控件的速度影响非常大。如果一个控件是由1个Label,一个TextBox复合而成的。那么创建一个这样的控件就相当于要生成2个控件。在设计界面和程序启动的时候速度明显感觉到变慢了。于是全部重新修改,尽量把能不用控件的地方全部改成绘制。比如Label用画出来的文字去替代。比如一个日历控件上的31天的日期,以前用的Label,或者Button。现在全部换成画出来的。创建速度从20毫秒

2021-06-10 15:00:12 542 1

转载 解决C#中取消方向键对控件焦点控制的实现方法

在C# winform 应用程序中,对于键盘响应事件,经常使用到"KeyPress"、“KeyUp”、"KeyDown"事件,可以处理某个按键的自定义处理事件。有时想定义方向键的自定义处理事件时,你可以发现,虽然自定义的处理事件发生了响应,但是也可以看到,按下方向键时,发现窗体上控件的焦点也发生了切换。而这种结果不是我们想要的,我们不想按下方向键时,控件的焦点发生切换,只想响应我们自定义的处理函数即可。下面的方法可以取消方向键对控件焦点的控制:复制代码代码如下:protected override bo

2021-04-05 12:14:11 1024 1

原创 EC-Engineer SDK 核心 API 使用指南

本文档为EC-Engineer SDK核心API使用指南,主要面向开发EtherCAT主站配置工具但不使用WPF UI的开发者。文档包含快速入门指南、完整使用手册、UI与核心API对比分析以及可直接运行的控制台示例项目。核心功能通过6个必需DLL实现,包括设备创建、从站网络构建、过程映像读取和ENI文件导出等操作。文档提供了两种学习路径建议和常见问题速查表,帮助开发者快速上手核心API开发。

2025-10-21 17:16:30 999

原创 五颗星: 在配置模式下,用户如何添加从站设备? 如何显示添加的从站的所有信息?

在配置模式下添加从站设备的主要步骤包括:首先调用_mainDialogViewModel.SwitchToConfigMode()进入配置模式,然后通过_mainDialogViewModel.GetFirstDevice()获取主设备ViewModel。添加从站时使用_mainDialogViewModel.AppendSlave()方法,传入父设备、厂商ID、产品代码和版本号等参数,支持串联或并联模块。新添加的从站会立即出现在device.Slaves列表中,可用于生成ENI文件或刷新UI显示。整个过程

2025-10-21 15:59:06 853

原创 EC-Engineer SDK 核心数据访问指南

本文档介绍了如何直接使用EC-Engineer SDK的核心层(Core Layer)来访问EtherCAT主站配置数据,而不依赖其WPF UI组件。SDK采用分层架构,核心功能由EcCore.dll、EcEniEngine.dll等必需组件提供。文档详细说明了各层组件的作用,并提供了核心API的使用示例,包括初始化配置、加载ESI文件、构建网络拓扑和访问从站数据结构等关键操作。通过这些API,开发者可以创建自定义的EtherCAT主站配置工具,实现ESI/ENI文件解析、设备管理和PDO配置等功能。

2025-10-21 13:25:22 1049

原创 EcSuiteTreeViewModel是什么作用?

摘要(149字): EcSuiteTreeViewModel是EtherCAT配置树的核心视图模型,兼具树形数据管理与UI控制功能。作为TreeViewSubItemViewModel的子类,它既是树节点基础类型,又是整个树的根ViewModel。其核心职责包括:1)通过持有的MainDialogViewModel调用SDK底层逻辑(工程创建、从站操作等);2)组织树形结构数据绑定到WPF界面;3)封装常用工程操作命令(如导出ENI文件)。该模型通过_mainDialogViewModel代理所有业务逻辑,

2025-10-21 09:51:12 865

原创 为什么MainWindow.xaml绑定的datacontext,EtherCATSuiteCtrl.xaml直接用了?

WPF的DataContext具有继承特性,子控件会自动继承父控件的DataContext。在EC-Engineer SDK Demo中,虽然只在MainWindow设置了DataContext(_treeViewModel),但作为子控件的EtherCATSuiteCtrl.xaml通过继承机制自动获得了这个上下文,因此可以直接绑定到ViewModel的数据和命令,无需单独设置。这种设计简化了XAML绑定,使子控件能自然访问父级的数据上下文。

2025-10-20 17:19:09 433

原创 ethercat网络拓扑详细学习

EtherCAT网络拓扑学习摘要(150字) EtherCAT网络拓扑学习分为6阶段:①基础概念(主从站、耦合器);②4种拓扑(线型/星型/树型/环型)的物理连接与特性对比;③帧转发机制(on-the-fly实时处理);④分布式时钟同步;⑤冗余与诊断;⑥工程配置实践。重点解析拓扑结构:线型延迟最低但无冗余,星型通过EK1122耦合器实现灵活分支,树型适合模块化系统,环型通过双网口主站实现高可靠性。帧转发依赖从站芯片的硬件级处理,数据流经时即时读写,确保微秒级同步。学习需结合TwinCAT等工具进行拓扑配置与

2025-10-16 16:23:20 737

原创 ethercat 帧往返时序

EtherCAT采用独特的"飞行中处理"机制实现亚微秒级实时性能。其核心在于从站硬件能够实时修改流经的数据帧,而无需等待完整接收。帧从主站发出后,每个从站通过专用芯片(如ET1100)在帧经过时立即执行数据提取和更新,同时继续转发未处理部分。最后一个从站的OUT口将帧传回主站另一端口,完成单次总线往返更新。这种机制相比传统以太网的"存储转发"模式,将单节点延迟降至1微秒以下,通过硬件级流水处理实现极高实时性,特别适用于高速伺服控制等场景。

2025-10-16 14:50:02 683

原创 ethercat 解释一下最后一个从站的 OUT 口将帧反向回传; 数据流向

EtherCAT网络中,主站发出的数据帧单向流动经过所有从站,每个从站实时处理并转发帧。最后一个从站的OUT口将帧继续发送至主站的接收端口(Port B),完成一次环路往返。整个过程仅需一次总线循环,实现所有I/O数据的同步更新。这种"边走边更新"机制确保了极高的实时性,主站在接收端能获取完整的更新数据,而无需数据帧折返。

2025-10-16 11:18:21 522

原创 ethercat 环型拓扑(Ring Topology)

本文详细解析了EtherCAT环型拓扑结构的工作原理与限制。主要内容包括:1)环型拓扑结构概述,展示主站双网口与从站的闭环连接;2)端口与PHY的对应关系表,说明各组件功能;3)环网冗余机制,解释主站如何通过双向帧监控实现自动切换;4)明确EtherCAT不支持无线/跨网段的原因(纯以太网帧不依赖IP协议);5)双网卡IP配置示例,强调IP仅用于系统识别,不影响EtherCAT通信。文章通过拓扑图和表格直观呈现了物理层数据流与端口对应关系,帮助深入理解EtherCAT环网的工作机制。(149字)

2025-10-16 10:54:30 971

原创 如果有两个网卡,他们端口都是什么样的? phy

摘要:EtherCAT从站(如EK1100)与双网卡设备的关键区别在于硬件架构和数据处理方式。EtherCAT从站是单一MAC控制器通过两个PHY实现硬件级实时转发,不涉及IP协议;而双网卡设备具有两个独立MAC控制器,各自配有IP地址,数据需通过软件协议栈转发,延迟较高。外观上,EtherCAT端口标注为In/Out,双网卡则标为LAN1/LAN2。前者适用于实时总线通信,后者用于普通网络连接。本质区别在于MAC数量、转发机制和IP分配。

2025-10-15 16:28:10 302

原创 EtherCAT 的 EK1100 和 EK1122 是最常用的两种耦合器,它们的端口数量和功能

摘要: EK1100和EK1122是EtherCAT常用耦合器,功能不同。 EK1100:双口(IN/OUT)主干耦合器,带E-Bus接口连接本地I/O模块,适合线性拓扑。 EK1122:四口(IN+3 OUT)分支耦合器,无E-Bus,用于星形/树形拓扑扩展。 对比:EK1100(2口+E-Bus)用于I/O链头部,EK1122(4口)实现多分支并行连接。典型应用可组合构建灵活网络拓扑。是否需要示意图辅助理解?

2025-10-15 14:33:51 495

原创 如何将本地文件夹添加到远程 Git 仓库

本文将介绍如何将本地文件夹初始化为Git仓库并推送到远程仓库(如GitHub)。首先通过git init初始化本地仓库,然后使用git add添加文件到暂存区,再通过git commit创建初始提交。接着用git remote add关联远程仓库地址,最后用git push推送代码到远程。完整流程包括:初始化仓库、添加文件、提交更改、关联远程仓库和推送代码。这套基础操作是Git版本管理的核心步骤,适用于项目管理和团队协作。

2025-09-23 10:26:53 472

原创 深入了解CANopen协议:对象字典0x1016 - Consumer Heartbeat Time

CANopen协议中的对象字典0x1016(Consumer Heartbeat Time)是确保网络可靠性的关键参数,用于配置消费者节点监控生产者心跳的规则。该对象采用固定数组结构,子索引0表示最高子索引编号,后续子索引以32位值存储节点ID和预期心跳时间(1ms单位)。实际应用中需合理设置超时值,并与NMT服务配合使用进行故障处理。该机制在工业自动化系统中发挥重要作用,如多轴伺服控制等场景,通过及时检测节点故障保障系统安全运行。理解0x1016对象有助于构建更稳定的CANopen网络。

2025-08-13 13:22:40 1094

原创 ole存储 通过流名称可以直接访问该流的数据

是的,在结构化存储(如 OLE 复合文件)中,。这种设计类似于通过文件名直接访问文件内容,但需注意其底层机制和结构化存储的特性。

2025-03-26 17:21:33 960

原创 【无标题】RegisterClassObjects

实际上是告诉COM运行时:“对于这些CLSID,我有类工厂可以创建对象”。它让COM运行时能够将客户端的。调用时做的是注册类工厂(Class Factories),而不是注册COM类本身到注册表。调用路由到正确的类工厂。

2025-03-19 19:33:58 278

原创 Windows Debugging: 解析 c00001a5 异常(Invalid Exception Handler)

在调试 Windows 应用程序时,我们可能会遇到一些棘手的异常错误。禁用非 Microsoft 的 Shell 扩展,排查是否某个扩展导致。然后运行应用程序并在 WinDbg 附加调试,观察是否触发异常。如果 SEH 处理链异常(例如指向无效地址),说明可能存在。本文将分析该异常的可能原因,并提供有效的调试方法。,可以有效解决该问题。如果是应用程序自身问题,则需要。进程的崩溃 dump 文件时,就遇到了。中加载 dump 文件后,使用。如果版本不匹配或损坏,使用。异常时找到合适的方法!

2025-03-11 17:11:51 802

原创 深入剖析 Windows 崩溃:从 explorerframe.dll 到 Mwt.exe 的侦探之旅

抱歉复制后格式出现问题,可能是因为 Markdown 或纯文本在不同平台间的换行和缩进处理不一致。我重新整理了一份格式清晰的版本,确保在复制到博客平台(如 WordPress、Medium)或文本编辑器时更容易调整。

2025-03-11 17:10:26 986 1

原创 深入理解Windows程序崩溃:探索与explorerframe.dll的关系

通过这次深入分析Windows程序崩溃问题,我学到了很多关于Windows系统组件交互和内存管理的知识。组件间依赖关系:即使我们的应用程序看似简单,但它可能通过各种方式与系统组件交互,形成复杂的依赖链。资源生命周期管理:在多进程环境中,正确管理共享资源的生命周期至关重要,特别是当涉及到COM接口和系统组件时。调试技巧与工具:学习了更多关于使用调试工具分析崩溃问题的方法,如Application Verifier、AddressSanitizer和WinDbg等。MFC程序设计注意事项。

2025-03-11 17:07:23 1122

原创 windows程序 crash后,dump默认在哪个文件?

您可以通过系统属性中的高级设置来更改系统崩溃转储文件的位置和类型。另外,某些应用程序可能会配置自己的转储文件位置,不同于系统默认设置。

2025-03-11 17:02:53 3407

原创 coclass Test 和 c++实现类名 为什么可以不一致?

COM 的设计通过CLSID、接口和注册表机制实现了逻辑定义(coclass)与物理实现(C++ 类)的解耦。这种设计提高了组件的灵活性、可维护性,同时确保了二进制兼容性。类名仅是实现细节,对外部客户端透明。

2025-03-07 11:31:00 624

原创 com里的代理存根库,是怎么被com库找到的?

COM 库通过注册表中的。

2025-03-04 10:33:18 973

原创 内敛函数在被使用处是什么样的?

内联函数在被使用处会被编译器直接展开,替换为函数体的代码。这种展开行为可以减少函数调用的开销,提高性能,但也可能导致代码膨胀。内联函数适合简单、频繁调用的函数,但不适合复杂逻辑或大型函数。,而不是通过函数调用的方式执行。这种展开行为是由编译器决定的,目的是减少函数调用的开销(如栈帧的创建和销毁、参数传递等)。当调用内联函数时,编译器会尝试将函数体直接嵌入调用处,而不是生成一个函数调用指令。内联函数通常定义在头文件中,并通过。函数)在被使用处会被。在编译阶段,编译器会将。

2025-03-03 15:29:05 786

原创 目标文件生成:每个编译单元生成的目标文件(.obj)中都会包含 MyStruct 的定义,但这些定义是类型定义, 为什么链接不会冲突? 内敛函数为什么不重复定义?

它们的目的是告诉编译器如何解释内存布局和类型信息,而不是生成实际的代码或数据。通过理解类型定义和内联函数的特性,可以更好地组织头文件和代码结构,避免链接冲突和重复定义问题。类型定义不会引发链接冲突,因为它们不生成实际的代码或数据。函数)在头文件中定义不会引发链接冲突,因为。,链接器会正确处理重复的定义。在 C/C++ 中,

2025-03-03 15:26:51 850

原创 ATL的rgs

rgs.rgs文件是 ATL 中用于定义 COM 组件注册信息的脚本文件。它通过描述注册表结构来动态生成注册表项。每个 ATL 类可以关联一个.rgs文件,通过宏实现。.rgs文件使得注册信息更灵活和易于维护。如果你有更多关于 ATL 或.rgs文件的问题,欢迎继续提问!

2025-03-03 10:00:09 761

原创 .net framework 3.5安装

你提到的是 “.NET Framework 3.5”,我猜你可能是想询问如何在 Windows 8.1 上安装或确认是否已安装 .NET Framework 3.5,因为它与 Windows 8.1 SDK 的开发环境密切相关。与 SDK 的关系:如果你安装 Windows 8.1 SDK 是为了开发,某些工具可能依赖 .NET Framework 3.5,确保它启用以避免兼容性问题。在弹出的窗口中,找到“.NET Framework 3.5(包括 .NET 2.0 和 3.0)”。

2025-03-02 17:56:29 1308

原创 我来解答你的两个问题:“DebugView 怎么指定监听具体的程序?” 和 “他必须在我写的程序里注入输入函数吗?”

DebugView 默认是全局捕获模式,它会监听系统中所有发出调试输出的程序(通过 OutputDebugString 或内核调试函数),而不是针对某个特定程序。DebugView 本身没有直接的“指定监听某个程序”的选项(如输入程序名或 PID)。我来解答你的两个问题:“DebugView 怎么指定监听具体的程序?” 和 “他必须在我写的程序里注入输入函数吗?如果你想更方便地监控特定程序,告诉我你的具体场景(例如程序名、用途),我可以推荐更合适的方案!问题 2:他必须在我写的程序里注入输入函数吗?

2025-02-26 13:53:27 350

原创 下载并运行 DebugView。 在 DLL 中添加调试输出,查看加载过程。

通过这种方式,你可以用 DebugView 实时监控 go_com_idl.dll 的加载和注册过程。OutputDebugStringA(“go_com_idl.dll: DLL_PROCESS_ATTACH - DLL 被加载\n”);OutputDebugStringA(“go_com_idl.dll: DLL_PROCESS_DETACH - DLL 被卸载\n”);OutputDebugStringA(“go_com_idl.dll: DLL_THREAD_DETACH - 线程分离\n”);

2025-02-26 13:40:53 562

原创 8.1 sdk和windows 8.1操作系统关联吗?

综上所述,Windows 8.1 SDK 和 Windows 8.1 操作系统之间存在功能和版本对应的关联,但它们并不是完全绑定的。:使用 Windows 8.1 SDK 开发的应用程序通常可以在 Windows 8.1 及更高版本的操作系统上运行,前提是应用程序没有使用特定于更高版本 Windows 的功能。它包含了 Windows 8.1 所需的头文件、库和工具。:Windows 8.1 SDK 支持 Windows 8.1 的新功能和 API,这些功能在早期版本的 Windows 中可能不可用。

2025-02-25 13:37:04 444

原创 IID_IMath是什么?

IID_IMath是一个 128 位的接口标识符(Interface ID),用于唯一地标识IMath接口。它是 COM(Component Object Model)中用于识别接口的 GUID(Globally Unique Identifier)的一种形式。在 COM 编程中,每个接口都有一个唯一的 IID,这使得客户端能够在运行时请求特定的接口。例如,IID_IMath这个 IID 在创建或使用IMath接口时非常重要,因为客户端需要通过函数或方法来获取接口指针。在这个例子中,IID_IMath。

2025-02-25 13:16:31 382

转载 Compile C files in C++ project which do not use precompiled header?

https://stackoverflow.com/questions/13883686/compile-c-files-in-c-project-which-do-not-use-precompiled-headerCan I disable precompile header for .c files in my C++ project?I’m getting these errors when I want to add the .C files to my program for a scripti

2025-02-25 10:52:27 72

原创 com库原理使用

看起来您想了解 COM(Component Object Model,组件对象模型)库的原理和使用方法。由于您的问题是用中文提出的,我会尽量用简洁、清晰的中文来回答,同时保持技术准确性。如果您有更具体的需求(比如代码示例或某个特定场景),请告诉我!

2025-02-23 19:08:15 843

原创 ProConOS 是一种高性能的 PLC 运行时引擎,专为嵌入式和基于 PC 的控制应用而设计

ProConOS 是一种高性能的 PLC 运行时引擎,广泛应用于嵌入式和基于 PC 的控制系统。目前,ProConOS 已在超过 25 万个设备中运行,包括驱动系统、远程终端单元 (RTU)、机器人控制和 PLC(甚至有多个 PLC 制造商将 ProConOS 用作其控制引擎!那么,为什么全球的控制制造商都信赖 ProConOS?这归功于其无与伦比的性能、易于集成以及可靠性。

2025-01-23 11:12:11 561

原创 KW ProConOS# - 可编程控制器操作系统

以这样的方式,它被设计用来适用于几乎任何硬件。全部PLC功能 ProConOS® 使得PLC程序的加载和执行成为可能,并且为PLC控制的机器和设备的编程、试运行和维护提供了强大的调试功能。这些接口有: I/O接口 固件接口 配置接口 多任务接口 文件设备驱动器接口 通讯接口 系统接口 基于标准,又具有KW-Software特色 ProConOS® 通常基于一个实时多任务内核,它提供了操作系统方面必要的功能,这些功能被ProConOS®本身用于内部用途,而且,通过这些功能使得PLC应用程序能够支持多任务。

2025-01-23 11:07:03 499

原创 com IDL EXTERN_C const CLSID CLSID_FirstClass; _i.h声明CLSID_FirstClass _i.c定义CLSID_FirstClass

i.h文件是 IDL 文件编译后生成的头文件,用于定义 COM 接口的 C++ 映射。它的主要作用是为 COM 客户端和实现者提供接口的声明,使得 COM 对象的开发和调用更加方便。你可以将其看作是 IDL 文件在 C++ 中的翻译版本。如果有更具体的问题,或者你希望深入理解某个部分,可以随时提问!

2024-12-25 16:24:54 856

原创 AfxOleInit()初始化做了哪些操作

初始化 OLE 系统 DLL的主要目的是初始化所需的 OLE 系统 DLL,以确保应用程序能够有效利用 OLE 服务。COM 库初始化:该函数内部调用,进一步调用来设置当前线程上的 COM(组件对象模型)库。这对于任何打算使用 COM 对象的应用程序都是至关重要的。消息过滤器创建:该函数创建一个实现接口的消息过滤器。这个过滤器对于处理与 OLE 操作相关的消息(如拖放和剪贴板交互)是必要的。线程模型设置:需要注意的是,MFC 应用程序必须初始化为单线程公寓(STA)。如果您直接使用,应指定。

2024-12-24 11:22:01 596

原创 MFC 文档模板 每个文档模板需要实例化吧

【代码】MFC 文档模板 每个文档模板需要实例化吧。

2024-12-18 16:56:49 762

IEC101文档

IEC101 02版 平衡非平衡 流程详解 基础介绍 适合配电自动化IEC101的学习,平衡非平衡介绍详细,有流程介绍

2018-05-09

正则表达式只可以输入只允许输入中文、数字、字母、下划线

正则表达式只可以输入只允许输入中文、数字、字母、下划线

2019-08-19

QTabWidget可以拖拽里面的tab

QTabWidget之间可以实现拖动,分离出新的窗口到另一个QTabWidget里

2018-05-27

log4qt qt5版本

我在豆子的基础上做了一些改动,豆子的没有导出类,直接加载到工程里用,不太方便 此版本可以在qt5上使用。 用此项目可以方便的记录qt项目中的各种异常信息,方便调试

2018-04-27

QTimer在子线程里执行例子

QTimer在子线程里执行例子,代码简单,调试方便 vs2008

2018-08-31

windows tcp&udp;测试工具 iocp代码

iocp服务器代码,一个是只有接收的,还有一个是接受后会发回 tcp&udp;并行压力测试工具 质量杠杠的

2019-01-30

win10 64 windbg

Debugging Tools for Windows 10 (WinDbg) If you just need the Debugging Tools for Windows 10, and not WDK 10 or Visual Studio 2015, you can install the debugging tools as a standalone component from Windows SDK. In the installation wizard, select Debugging Tools for Windows, and deselect all other co

2019-01-27

linux c线程池

linux pthreadpool实现和线程池的用处 简单易懂 互斥和信号量使用

2018-10-15

iec61850应用入门

全书共分五章: 第一章简单介绍常规变电站自动化系统的不足,主要介绍了IEC61850标准的内容、特点和发展趋势; 第二章介绍面向对象的基本概念,OSI、TCP/IP网络模型,以太网技术基础,XML、XMLSchema基础和常用软件工具; 第三章介绍IEC61850的分层信息模型、具体定义、配置方式与配置文件; 第四章主要介绍MMS基础知识、IEC61850与MMS的映射关系、MMS与ASN.1编解码和MMS典型报文分析; 第五章介绍GOOSE服务、IEC61850—9—2SV服务、简单网络时间协议和IEEE1588精确时钟同步协议。

2019-02-02

Navicat for MySQL_11.2.15.rar

Navicat for MySQL是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。Navicat,使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。

2019-08-04

云风伙伴算法代码

这个内存分配器需要是非入侵式的,即不在要分配的内存块中写 cookie 。 而我的需求中,需要被管理的内存块都是很规则的,成 2 的整数次幂的长度。buddy memory allocation 刚好适用。 算法很简单,就是每次把一个正内存块对半切分,一直切到需要的大小分配出去。回收的时候,如果跟它配对的块也是未被使用的,就合并成一个大的块。标准算法下,分配和释放的时间复杂度都是 O(log N) ,N 不会特别大。算法的优点是碎片率很小。而且很容易做成非入侵式的,不用在被管理的内存上保存 cookie 。只需要额外开辟一个二叉树记录内存使用状态即可。 我吃完饭简单 google 了一下,没有立刻找到满足我要求的现成代码。心里估算了一下,C 代码量应该在 200 行以下,我大概可以在 1 小时内写完。所以就毫不犹豫的实现了一份。 然后,自然是开源了。有兴趣的同学可以去 github 拿一份。这样就省得到再需要时再造轮子了。嘿嘿。 btw, 当然这块代码有许多值得优化的地方,比如可以把里面的递归优化成循环回溯。这个算法我读初中时经常写。因为初一那个时候参加信息学奥赛时用的 basic 不支持局部变量,全部变量都是全局的,很难实现递归。所以早期我都不用递归遍历二叉树的,感觉写起来好麻烦。 不过循环回溯遍历树应该是比递归快不少的,因为减少了许多不必要的环境变量压栈,对不支持 closure 的 C 语言尤其是。 这个库用起来很简单。它并不实际管理内存(它不侵入被管理的内存)。你可以设想你另外有一大块内存是由许多最小单位块合起来的。你可以假设最小单位是 1K 。那么用 buddy_new(10) 就可以帮你管理 1024K 内存。 buddy_alloc 可以请求若干个最小单位块,返回一个序号。然后用户可以自己去大内存上索引出来用。用完调用 buddy_free 归还即可。 为了调试方便,我还提供了 buddy_dump 打印二叉树的细节,可以直观的看出那些内存区域未被使用,哪些已经被占用。 ps. 果然,写这篇 blog 花掉的时间比完成这些代码时间更长。代码也如我所料的没有超过 200 行。看看,把东西描述清楚就是比实现一个东西要花更长的时间,这就是项目人多反而做的慢的原因之一吧。

2018-08-08

iocp服务器代码_tct&udp;测试工具

iocp服务器代码,一个是只有接受的,还有一个是接受后会发回 tcp&udp;并行压力测试工具 质量杠杠的

2018-09-29

Product_Consumer.zip

qt5 vs2019 生产者消费者模式代码c++代码

2020-08-19

MySQL浏览器SQLyog-11.5.1-0.x86Community.rar

mysql操作实用工具,方便 mysql操作实用工具,方便 mysql操作实用工具,方便 你能简单并快速地在各种数据库系统间传输数据,或传输一份指定 SQL 格式及编码的纯文本文件。这可以简化从一台服务器迁移数据到另一台服务器的类型的进程。不同数据库的批处理作业也可以计划并在指定的时间运行。

2019-11-20

qt5 ftp文件直接加入到工程

qt5里没有ftp,直接把qt4里的文件用

2019-03-08

msinttypes-r26_vs2008没有c99头文件.rar

解决visual studio 2008缺少inttypes.h和stdint.h的问题.

2019-06-12

qt5 qftp编译

在github官方下载的源码,没有导出宏,qurlinfo.h在当前目录下使用,DEFINES += FTP_LIB,qtftp-master\src\qftp\qftp.pro文件加宏DEFINES += FTP_LIB

2019-02-25

104报文解读

104规约大致有1997年和2002年(02版)两个版本,在配置上没什么变化,只是02版在97版上扩展了遥测、遥信等信息体起始地址,区别如下: 类别 97版 02版 YX 1H------400H 1H------4000H YC 701H------900H 4001H------5000H YK b01H-------b80H 6001H-------6100H 设点 B81H-------c00H 6201H--------6400H YM C01H-------c80H 6401H---------6600H 目前常用的是02版的,故一个104通道,YX最多可配16384个,YC最多可配 4096个,YK最多可配256个,YM最多可配512个。 4个控制域8位位组:前两个是发送序号,后两个是接收序号

2018-03-01

仿qq界面 qt

可执行文件: 使用的Qt4.7.4+VS2008 qq登陆界面和qq主界面,没有实现具体功能

2018-02-28

udnerstand linux

功能强大的代码阅读工具,我之前在windows上用过,linux我想安装一个,妈的,有的积分要的太高了,为了给大家弄点好福利,我自己搞了一个

2018-10-16

Overview NClass is a free tool to easily create UML class diagra

Overview NClass is a free tool to easily create UML class diagrams with full C# and Java language support. The user interface is designed to be simple and user-friendly for easy and fast development. Properties, enums, delegates and other language specific elements are fully supported with strict syntactical and semantical verification. Design your application with just a few clicks - the main goal is to provide a simple but powerful class designer that is very intuitive to use. Diagram styles

2023-05-08

WMIDiaog安装程序 详细方法

You can receive error 0x80041010 from multiple applications that call WMI. For my example it was received in SCCM while patches were being applied.

2022-10-12

c# winform 绘制多行文本:自动换行:文本

c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本c# winform 绘制多行文本:自动换行:文本

2022-06-29

c# winfrom自定义图片和文字

c# winfrom自定义图片和文字 c# winfrom自定义图片和文字 c# winfrom自定义图片和文字

2022-06-24

C#中标准Dispose模式的实现

C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现 C#中标准Dispose模式的实现

2022-04-22

c# 测试UserControl内存泄漏

c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏 c# 测试UserControl内存泄漏

2022-04-21

gcc各个版本下载_gcc-4.8.5.rar

gcc各个版本源代码下载地址 里面打包了gcc-4.8.5源代码

2020-03-10

MicrosoftProgram_Install_and_Uninstall.meta

卸载程序失败,可以用这个工具修复

2022-01-25

Modbus_Application_Protocol_V1_1b.pdf

Modbus_Application_Protocol_V1_1b modbus协议英文版

2020-11-06

CustonColumn.zip

c# DataGridView的列设置combobox和设置RichTextBox vs2019 我的DataGridView单元格输入中文乱码,RichTextBox可以正常输入中文,我的思路就是RichTextBox覆盖单元格,然后把RichTextBox的值传给单元格

2020-12-21

HCloner.zip

深拷贝 Below you can find a short article on how to do a deep copy of objects using Reflection in C#. Please be aware that this is my first article here (even first article in the English language...)

2021-11-23

C# GDI+ 画线、画矩形、画椭圆等

C# GDI+ 画线、画矩形、画椭圆等 vs2019

2021-10-15

simpleIO_direct_control.cid

libiec61850\examples\server_example_basic_io\simpleIO_direct_control.cid iedsout运行服务器仿真文件 客户端程序client_example2

2020-10-13

grpc_practice.zip

Net Core gRPC入门——项目搭建、服务端、客户端

2021-05-29

TestHttpPost.zip

c#实现http get post

2021-03-09

ProgressBar_BackgroundWorker.zip

C#.NET中使用BackgroundWorker在模态对话框中显示进度条

2021-05-27

正则表达式中文字符数字

各种正则表达式中文字符数字等等

2021-03-25

CMakeProject1.zip

cmake简单工程 https://www.jb51.net/article/180466.htm参考网址

2021-03-23

KKSetup.exe

KK录像机 - 免费的超清录屏软件,集屏幕录像、同步录音、视频编辑、视频修复于一体。支持录制电脑、手机屏幕、各类游戏、桌面操作、网络课程、qq视频、在线视频等

2020-02-20

styledemo.rar

QSS样式表之PS黑色风格+白色风格+淡蓝色风格

2020-03-09

空空如也

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

TA关注的人

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