现在位置: 首页 > 自动控制 > 文章
接下来,我们将继续分析UIlib.h文件中其他的文件, UIContainer.h, UIRender.h, WinImplBase.h, UIManager.h,以及其他布局、控件等; 1. UIRender.h:UI渲染器,其中cpp文件中,定义的ZIP压缩相关的数据结构,以及宏操作,与XUnzip.cpp中一样的(个人认为可以提取出来作为共用的一部分),此外还有stbi_load_from_memory、        stbi_image_free,涉及到图片加载操作,具体详细细节可参考st...
阅读全文
接下来,我们继续分析UIlib.h文件中余下的文件,当然部分文件可能顺序错开分析,这样便于从简单到复杂的整个过程的里面,而避免一开始就出现各种不理解的地方。 1. UIManager.h:UI管理器,暂时放在后面介绍; 2. UIBase.h:UI窗口相关,包括常用的窗口风格、窗口类风格的宏定义,调试相关,以及基本窗口类; 首先宏定义了几个常用的窗口风格、窗口扩展风格和窗口类风格,以UI_WNDSTYLE_XXX和UI_CLASSSTYLE__XXX开头的; A...
阅读全文
2020-04-18 15:09 科技·视野 ⁄ 共 558字 暂无评论
  在智能交通领域之中,一方面车联网自身的概念一直在变化,另一方面还有许多类似但有差异的称呼出现,这往往会影响大多数人们对车联网的理解和认知。目前,车联网比较公认的含义是“V2X( Vehicle-to-everything)”,这是一个从联接场景角度提出的概念。从英文字面意思就能够看出,“车联网-V2X”是将车辆连接到所有事物。 它包括了四类典型的连接: “车辆到车辆”(V2V,Vehicle-to-Vehicle)、 “车辆到基础设施”(V2I,Vehi...
阅读全文
上节中提到在遍历创建控件树后,执行了以下操作:       1. CDialogBuilder构建各控件对象并形成控件树,并返回第一个控件对象pRoot;      2. m_pm.AttachDialog(pRoot);m_pm.AddNotifier(this);将控件attach到CPaintManagerUI  m_pm中管理,此外INotifyUI子类对象被加入到m_pm;         这样m_pm不仅管理控件对象也对消息监听接口N...
阅读全文
上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup; CMarkup:xml解析器,目前内置支持三种编码格式:UTF8、UNICODE、ASNI,默认为UTF8;CMarkupNode:xml节点类 先介绍CMarkup: XMLELEMENT: xml节点元素类型定义,iStart,节点元素在xml文件中的起始位置;iChild,节点元素子节点;iNext,节点元素的下一个节点(兄弟节点);iParent,节点元素的父节点;iData, 节点元素的数据(事实上,这些值均为U...
阅读全文
上一节了解了大体流程,但是界面控件元素是如何被加载、解析、构建、管理、控件消息如何处理的呢?接下来我们将结合控件构造器进行分析; CDialogBuilder:控件构造器,主要用以解析xml配置文件并以此创建相应控件及相关属性。 类成员数据: m_xml:xml解析器,用以读取并解析xml配置文件; m_pCallback:构造器回调函数,用以给予用户可以实现自定义的构造控件对象的方式; m_pstrtype:以NULL为结束符的字符串,资源类型...
阅读全文
2020-04-15 09:03 工业·编程 ⁄ 共 2440字 评论 1 条
Duilib界面库是一款由杭州月牙儿网络技术有限公司开发的界面开源库,以viksoe项目下的UiLib库的基础上开发(此后也将对UiLib库进行源码分析);通过XML布局界面,将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。一般常用于开发小型项目Windows桌面客户端软件;其子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。目前开源协议以BSD发布,可使用于商业应用,好了,其他更为详细的介绍,请查阅...
阅读全文
2020-04-14 16:53 工业·编程 ⁄ 共 18210字 暂无评论
1.网络协议设计     ISO提出了OSI分层网络模型,这种分层模型是理论上的,TCP/IP最终实现了一个分层的协议模型,每一个层次对应一组网络协议完成一组特定的功能,该组网络协议被其下的层次复用和解复用。这就是分层模型的本质,最终所有的逻辑被编码到线缆或者电磁波。     分层模型是很好理解的,然而对于每一层的协议设计却不是那么容易。TCP/IP的漂亮之处在于:协议越往上层越复杂。我们把网...
阅读全文
2020-04-13 10:49 工业·编程 ⁄ 共 33174字 暂无评论
C++的高抽象层次,又兼具高性能,是其他语言所无法替代的,C++标准保持稳定发展,更加现代化,更加强大,更加易用,熟练的 C++ 工程师自然也获得了“高水平、高薪资”的名声,但在各种活跃编程语言中,C++门槛依然很高,尤其C++的内存问题(内存泄露,内存溢出,内存宕机,堆栈破坏等问题),需要理解C++标准对象模型,C++标准库,标准C库,操作系统等内存设计,才能更加深入理解C++内存管理,这是跨越C++三座大山之一,我们必须...
阅读全文
2020-04-12 14:28 工业·编程 ⁄ 共 1214字 暂无评论
1 缘由 在阅读seastar源码时发现有使用pread函数,这也是第一次认识pread函数,平时用read比较多。 2 pread函数 2.1 函数原型: #include <unistd.h> ssize_t pread(int fd, void *buf, size_t count, off_t offset); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); pread简单来说就是在指定偏移offset位置开始读取count个字节,同理可推``pwrite`。 2.2 使用示例 #include <unistd.h> #in...
阅读全文