1、单向链接 单向链表适用于只从一端单向访问的场合,这种场合一般来说: (1)、删除时,只适合删除第一个元素; (2)、添加时,只直接添加到最后一个元素的后面或者添加到第一个元素的前面; (3)、属于单向迭代器,只能从一个方向走到头(只支持前进或后退,取决于实现),查找效率极差。不适合大量查询的场合。 这种典型的应用场
月度归档: 2014 年 9 月
重要更新-QRBTree的Delete函数发现一处问题,请及时更新
【问题描述】 调用Delete函数时,如果删除的是第一个元素,由于忘记更新桶链接,会造成桶的首个列表失效,从而引法错误 【严重级别】 高 【更新级别】 立即更新 【影响范围】 QJson、QWorker、QXML、QMsgPack等
QDAC官方网站祝各位朋友国庆节快乐
前人的苦难和不屈为我们带来今日的幸福和荣光,让我们纪念和缅怀他们。同时,国庆长假到了,让我们顺便放上繁忙的工作,换上愉悦的心情,好好的休息,快乐的生活,让我们的前辈在上苍看到,做为后人,我们享受着他们带给我们的幸福和快乐。 祝大家节日快乐,安全出行,不出去玩的在家安心睡大觉,欣赏出行的人山人海的盛景。
QWorker更新-修正了工作者解雇算法存在的问题
【问题描述】 原来的工作者空闲超时检测算法,清零超时时间的位置错误,造成如果存在定时作业时,已超时时间错误的被重置为0,从而造成工作者总认为自己没有超时,而被保留。 本次更新同时为EnumWorkerStatus函数返回的工作者状态增加了一个LastActiveTime来记录最末次处理作业的时间。 【严重级别】 中 【
QWorker更新-在Win32平台上枚举作业状态加上堆栈显示
在多线程编程中,死锁是一个绕不过去的话题,一旦发生死锁,要想知道程序死在那儿,为啥死的,是一个艰难的选择。QWorker为用户新提供的EnumWorkerStatus函数,可以轻松的报告每个工作者的状态、正在处理的作业、及工作者处理作业的堆栈调用情况,通过跟踪这些信息,大家可以方便的抓取到每个工作者当前在干什么,从而可
diocp3-服务器的连接上限是到底是多少?diocp3的一个装13测试(8W连接数)
测试DEMO路径 diocp3\samples\ECHO 之前群里说一台服务器最多是High(Word)的连接数65535,当时我看了下socket的类型是u_long,并不是word,虽然不用那么多连接数,虽然当时润哥做过测试。今天发现我的机子可以上6W的连接数,果断对diocp3做了下连
MyBean 框架学习笔记
MyBean 框架学习笔记 2014/9/15 by lighttop 目 录 MyBean 框架学习笔记………………………………………&#
AccessViolation错误调试总结
【转载请注明出处及作者,文章发现问题会随时更新,要保证浏览最新版本,请访问官网:blog.qdac.cc】 Access Violation错误是现代计算机编程中常见的一种错误,我在这里将自己调试的经验做个简单的总结,供大家参考。 1、什么情况下发生Access Violation(访问违例,简称AV错误)错误? Ac
QDAC新增QMapSymbols单元
【转载请注明出处及作者,文章发现问题会随时更新,要保证浏览最新版本,请访问官网:blog.qdac.cc】 QMapSymbols单元是用来支持Delphi/C++ Builder生成的.map文件,通过访问该文件代码段的内容,从而获取程序运行时当前的源代码位置,方便大家跟踪程序中出现的问题。 关于.map文件的格式,
Delphi/C++ Builder Map文件格式解析
【转载请注明出处及作者,文章发现问题会随时更新,要保证浏览最新版本,请访问官网:blog.qdac.cc】 Delphi或C++ Builder在编译程序链接时,可以选择生成扩展名为.map的文件符号映射文件,这个文件记录了程序中各个函数、变量的地址等信息,我们今天要做的就是解析这个文件的格式,以便在QWorker中,
QWorker更新-增加枚举作业状态枚举函数等功能
QWorker今天更新了几个更新的功能: 1、新增了一个EnumWorkerStatus函数来枚举所有工作者的状态,方便你了解每个作业函数在忙啥。在程序发生死锁时,方便你找到死锁的地方。 下面是调用的示例代码: procedure TForm1.Button32Click(Sender: TObject); var A
【Delphi】类似地图的以鼠标为中心缩放图像
以鼠标为中心进行缩放,就像使用百度地图时一样。这种方式比一般的以图像中心点为中心进行缩放更加符合人们的思维惯性。 在网上找了没发现现成的,自己研究了半天,绕来绕去,头晕眼花的。后来得到群友的帮助才解决了这个问题。 下面给出由网友霸天虎兄弟提供的方法改写出来的代码: procedure TForm1.Zoom(I: Si
【Delphi】ICON图标文件解析
icon是一种图标格式,用于系统图标、软件图标等,这种图标扩展名为*.icon、*.ico。常见的软件或windows桌面上的那些图标一般都是ICON格式的。 ICON文件格式比较简单,包含文件头段、图像数据头段、图像数据段。 文件头: 文件头为6个字节,定义如下: type ICONDIR = packed reco
密码保护:走向01之路-计算机编程入门教程(08-我们的第一个小程序)
无法提供摘要。这是一篇受保护的文章。
Delphi调用C语言接口的几点小提示
1、对方给你DLL可能未声明正确的调用方式。一般来说接口都是stdcall或cdecl两种形式的,当然COM时有safecall,但COM对象一般直接导入,不需要自己手写,所以没啥问题。 2、将C语言的char/char *转换到Delphi时,一定要注意它对应的类型不能简单的理解为PChar,因为PChar的定义是有
密码保护:走向01之路-计算机编程入门教程(07-了解我们的编程环境)
无法提供摘要。这是一篇受保护的文章。
Delphi 复制文件到剪贴板
将文件复制或剪切到剪贴板,可以在资源管理器、桌面等地方粘贴。在网上找了下,找到一些代码,不过发现都有点bug,现在将修正后的分享出来。 procedure CutOrCopyFiles(FileList: AnsiString; bCopy: Boolean); type PDropFiles = ^TDropFile
MyBean不带包DLL窗口,多任务栏的解决
MyBeanDLL带包运行时,DLL窗体不会出现在任务栏上,但如果不带包运行时,则DLL窗体则也会出现在任务栏上,这是因为DLL里的Application和主程序的Application不是同一个。 按以往DLL窗体的方法,可以把主窗体的Application传给DLL;MyBean则要在DLL里主动去获取,方法如下:
C++ Builder中实现对Delphi匿名函数的支持
好吧,C++里没有匿名函数,看由Pas生成的HPP文件,你会发现它要你实现一个Interface,好在C++的类型声明是随时随地可以进行的,所以对应的实现步骤如下: 1、声明一个类,继承自TCppInterfacedObject<匿名函数类型>以实现匿名函数对应的接口,你愿意写成interface也无所谓,
QPlugin框架内核设计调整计划
参考强大的群主对插件的10条建议后,,拟对QPlugin的内核实现进行一些调整,以释放出内核各组件更大的定制和重用自由度。 先罗列一下群主的10条大补丸,然后逐一说下想法,大家看了请有想法的也提些建议,在动手前越清晰越好哈。 1、我这里将提供插件管理的核心称之为宿主,它应该是一种及其精简的微内核,唯一的作用就是注册和查