10 2019 档案

摘要:需掌握的硬技术: 0. 常用的数据结构、算法; 1. 面向对象思想、面向对象设计原则、面向对象开发和实现;另外对于思想还有面向过程、面向接口服务、面向切面、函数式编程等; 2. 设计模式、架构模式、I/O模式、分布式模式、网络模式等; 3. 服务端的开发经验,各类服务端相关技术; 4. 后端开发语言 阅读全文
posted @ 2019-10-27 11:08 浩月星空 阅读(245) 评论(0) 推荐(0) 编辑
摘要:适配器(adapters): 概念上类似于设计模式中的适配,此处STL中的适配器可对组件的组合、灵活运用扮演重要角色。 STL中适配器主要有:容器适配器、迭代器适配器、仿函数适配器 容器适配器: queue(先进先出)、stack(先进后出)、priority_queue(优先队列)适配器,即queue和stack的_Sequence序列模板参数默认类型为deque<T>(双端队列), prior 阅读全文
posted @ 2019-10-13 13:59 浩月星空 阅读(236) 评论(0) 推荐(0) 编辑
摘要:此外还有const属性剔除模板类,如: _Constant_void_fun、_Constant_unary_fun、_Constant_binary_fun以及基于此三者继承而来的仿函数模板类,如: constant_void_fun、constant_unary_fun、constant_bin 阅读全文
posted @ 2019-10-13 13:02 浩月星空 阅读(210) 评论(0) 推荐(0) 编辑
摘要:一、单一职责原则(SRP) 定义: 就一个类而言,应该仅有一个引起它变化的原因。 说明: 如何识别并分离职责: 一般类所谓的职责,指的是完成某项工作或认为所提供的功能,其可由一系列功能函数支持实现;分离职责即可按照分离功能实现的策略进行。 小结: 单一职责看似简单,实则比较复杂,其主要体现在识别职责 阅读全文
posted @ 2019-10-12 17:42 浩月星空 阅读(906) 评论(0) 推荐(0) 编辑
摘要:一、模板 二、异常处理 1) 检验throw操作的函数; 2) 决定throw操作是否发生在try区段; 3) 若是,则把异常对象的类型与每个catch子句对比(依赖RTTI机制); 4) 若吻合时,则流程控制交给catch子句中(catch子句可以处理异常或其他的资源释放或恢复等操作,也可以继续抛 阅读全文
posted @ 2019-10-12 13:41 浩月星空 阅读(279) 评论(0) 推荐(0) 编辑
摘要:一、对象的构造与析构 二、new和delete操作符 三、临时性对象 1) 一般认为,临时性对象被摧毁应是在对完整的表达式在求值过程中的最后一个步骤时; 2) 若临时对象被绑定在一个引用上,则其生命周期被延长,直到该引用的生命周期结束或直到临时对象的生命作用域范围结束,此时视哪一种情况先到达而定。 阅读全文
posted @ 2019-10-12 11:47 浩月星空 阅读(141) 评论(0) 推荐(0) 编辑
摘要:一、类虚函数杂谈 0.虚基类中若存在成员变量,应提供可初始化的构造函数或默认参数的构造函数,避免该成员变量无法被初始化到;当然若不是出于公共部分剥离到父类,则可以将其下层到子类中去,避免基类增加不必要的构造函数。 1.建议不要把基类中的虚析构函数置为存虚的。 2.不必要把子类基本不会覆写的函数设置为虚函数,也不应该全部函数加上virtual修饰由编译器来帮助取消一些成员函数的虚函数... 阅读全文
posted @ 2019-10-11 23:53 浩月星空 阅读(168) 评论(0) 推荐(0) 编辑
摘要:一、类成员函数调用方式 二、虚成员函数 虚函数的调用,当由一个指向子类的基类指针对象或引用对象时,需要在运行期获取到足够的信息,以表明当前实际执行实体。在类对象模型中,只要有虚函数,则就需要执行期的额外信息(当前指针指向的真实类型以及实际的实体所在位置地址)。这就涉及到vptr和vtable表的构建 阅读全文
posted @ 2019-10-11 20:15 浩月星空 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、类数据成员绑定 1.一个空类的大小不会为空,一般为一个char,即1个字节大小,其为了区分不同两个空类对象,需要一个地址来表示。 2.一个类的sizeof的大小,由多个方面影响: 1)语言本身的负担(如虚指针) 2)不同编译器对特殊情况的优化处理(如继承于一个空类的类,编译器可能做优化) 3)alignment对齐方式的限制(因为对齐的原因,成员变量的顺序有时也会对sizeof大小影响)。 3 阅读全文
posted @ 2019-10-11 14:19 浩月星空 阅读(238) 评论(0) 推荐(0) 编辑
摘要:一、C++ 默认构造函数 1.关键字explict的引入为解决单个参数的构造函数被隐式当作一个转换运算符的窘迫,此关键字要求在单个参数的构造函数时需显式调用构造函数,而不是当作转换运算;故除非的确需要用到类包装器的转换类时,否则一般情况下单个参数的构造函数建议用explict修饰。 2.编译器会在必要的时候生成默认构造的构造函数,什么情况下是必要的时候,另外生成的默认构造函数是... 阅读全文
posted @ 2019-10-11 11:23 浩月星空 阅读(259) 评论(0) 推荐(0) 编辑
摘要:C++ 对象模型 相对C语言的结构体和函数分离实现的不同,C++的对象模型基于类或继承,实现针对自身的从内存空间和存取时间做了优化或称为折中。 (1). C++对象模型的基本布局,如下图: 1.非静态数据成员在每个类对象中均有一份独立的实体,如:_x; 2.静态数据成员放置在类外,仅有一份共享实体,如:_point_count; 3.静态或非静态的成员函数也被放置在类外... 阅读全文
posted @ 2019-10-11 00:02 浩月星空 阅读(249) 评论(0) 推荐(0) 编辑
摘要:1. 确定使用正确的Python版本(Python2/Python3)以及实现版本运行时环境(解释器)(CPython/Jython/IronPython/Pypy),建议使用Python3 2. 应严格按照PEP8的代码规范编写代码,使用同一套风格以便于协同开发项目以及后期维护工作 3. 确定不同情况下,Python3使用bytes(8位字节编码)、str(Unicode编码)类型,可编写辅助函 阅读全文
posted @ 2019-10-10 20:57 浩月星空 阅读(230) 评论(0) 推荐(0) 编辑
摘要:0. IPython Python的命令行扩展工具 1. 列表推导 [] 2. 迭代器 需实现__next__、__iter__接口的迭代器类 3. 生成器 使用yield的函数,便成为了生成器对象,可使用next函数、send、close、throw等函数结合使用;此外可实现协程 4. 生成器表达式 类似于列表推导,但是其使用()而不是[],并成为生成器类 5. itertools模块 提供更高 阅读全文
posted @ 2019-10-10 20:53 浩月星空 阅读(139) 评论(0) 推荐(0) 编辑
摘要:如何开始一个python3.x项目,包括创建干净的python虚拟环境,安装需要的包,创建工程,Git托管等4个步骤 以下为具体操作步骤: 0. 检查是否安装相应版本的Python3,若未安装则先安装Python3(Linux下一般自带(版本一般不是最新的),Windows需单独安装) 1. 安装pip3,sudo apt-get install python3-pip, 此外安装后可通过pip3 阅读全文
posted @ 2019-10-10 20:51 浩月星空 阅读(572) 评论(0) 推荐(0) 编辑
摘要:Node异步编程难点: 1. 异常处理 不能仅仅依靠传统的try/catch/final语句块进行异常捕获;而是应采用回调函数调用时传err错误码参数的方式捕获异常; 原则1:必须执行调用者传入的回调函数,回调函数第一个参数是err,err为真,则有异常,则可执行异常后续处理,否则执行相应的正常操作。 原则2:正确传递回异常供调用者判断,即在编写异步方法时,只要将异常正确传递给用户的回调方法即可, 阅读全文
posted @ 2019-10-10 20:43 浩月星空 阅读(98) 评论(0) 推荐(0) 编辑
摘要:待续...... 阅读全文
posted @ 2019-10-10 20:37 浩月星空 阅读(140) 评论(0) 推荐(0) 编辑
摘要:待续...... 阅读全文
posted @ 2019-10-10 20:36 浩月星空 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Nodejs基于事件机制以及回调函数实现异步编程 回调与异步: 回调不等于异步,回调只是一个函数作为另一个函数的参数而已。一般实现异步的方式由setTimeout或SetInterval + 回调函数来实现。 此外很多API默认均是采用异步调用的方式实现。 代码设计模式: 1. 函数的返回值可以作为其他函数的参数,此外函数也可以作为其他函数的参数以实现回调函数嵌套,不过回调函数嵌套的层次太深会比较 阅读全文
posted @ 2019-10-10 20:35 浩月星空 阅读(144) 评论(0) 推荐(0) 编辑
摘要:0. 进程 Node进程主要用来控制处理自身进程运行环境和状态,也可创建新的进程以协同处理某些任务,此时充当调度器作用。 1. process全局对象,表示当前NodeJS自身进程的对象。 2. child_process子进程模块,可创建和控制子进程,child_process.spawn创建进程(三个参数分别为可执行文件路径、命令行参数、配置子进程的执行环境与行为),此外exec等API对其进 阅读全文
posted @ 2019-10-10 20:34 浩月星空 阅读(128) 评论(0) 推荐(0) 编辑
摘要:0. http http模块可支持服务器使用和客户端使用。 服务器端使用: http.createServer创建服务器对象,调用服务器对象的listen监听某端口,等待客户端请求;也是一种基于回调事件机制。 HTTP请求由请求头+请求内容组成,请求头与请求内容(请求体)间有个空行,在http接收请求回调函数中request参数对象可访问请求头数据以及请求内容。 HTTP响应由响应头+响应内容组成 阅读全文
posted @ 2019-10-10 20:33 浩月星空 阅读(146) 评论(0) 推荐(0) 编辑
摘要:0. fs模块文件读写 一般操作: fs.open打开文件 fs.read读文件 fs.write写文件 fs.fsync刷新内存缓存以写入文件(类似于C/C++语言的flush) fs.close关闭文件 文件读写: fs.writeFile fs.writeFileSync(同步) fs.readFile fs.readFileSync(同步) 通过pipe管道读写数据流,用于大文件: fs. 阅读全文
posted @ 2019-10-10 20:32 浩月星空 阅读(109) 评论(0) 推荐(0) 编辑
摘要:0. node 命令行参数选项 1. 模块导出: exports与module.exports区别; module.exports 导出便是将要被导出的对象,exports则可认为是module.exports的引用对象(exports本身仅是一个空对象,此时用来声明接口)(两者均指向对一个对象的变量), 实际上被导出或者说被require的便是module.exports对象指向的对象,而exp 阅读全文
posted @ 2019-10-10 20:31 浩月星空 阅读(196) 评论(0) 推荐(0) 编辑
摘要:0. 小工具 npm: node第三方库管理工具,用来获取第三方包、升级、删除或发布编写的包。 nvm: node的多版本管理工具。 supervisor:监视你对代码的改动,重启当前执行的js文件,一般用在网站、web开发以实时修改并观察结果便于调试。 1. 事件 events内置模块,可注册事件监听器、触发指定的事件信号和相应的事件处理。 ... 阅读全文
posted @ 2019-10-10 20:28 浩月星空 阅读(320) 评论(0) 推荐(0) 编辑
摘要:23. Object对象 构造函数的参数若为对象,则返回原参数对象,指向同一个对象的引用(可基于此判断一个参数变量是否为对象即value===Object(value)); 构造函数的参数为原始数据类型,则返回包装后的对象。如Number、Boolean、String等,其中无参或参数为undefined或null均返回一个空对象。 添加新方法: 1. 通... 阅读全文
posted @ 2019-10-10 20:24 浩月星空 阅读(99) 评论(0) 推荐(0) 编辑
摘要:19. 运算符 加法运算符+: 1. 若运算子是对象,则自动转成原始类型值;此过程中先执行该对象的valueOf方法,若仍然 不是原始数据类型值,则再执行toString方法,若对象是Date实例,则执行toString方法。 2. 两个运算子都是原始类型的数据后,只要有一个为字符串,则运算子会转为字符串后执行字符串 的连接... 阅读全文
posted @ 2019-10-10 20:23 浩月星空 阅读(202) 评论(0) 推荐(0) 编辑
摘要:0. 语句 语句以";"结尾,但也可以省略,引擎解析器会自动添加必要的分号,不过此可能导致引入BUG。 1. 变量提升 因JavaScript引擎的工作方式,先解析代码,然后获取所有被声明的变量,然后再一行一行地运行; 在获取所有变量的声明时,变量声明类似于会被提升到代码的头部的操作。 例如: console.log(a); va... 阅读全文
posted @ 2019-10-10 20:22 浩月星空 阅读(173) 评论(0) 推荐(0) 编辑
摘要:请求发送方: 0. 一般可以采用fork一份某仓库(project-name)到自己的github 1. 克隆该自己的github下的该仓库到本地 git clone git@github.com:user-name/project-name.git 2. 创建本地仓库project-name的分支特性仓库(一般主流开发方式使用特性分支以及以特性分支提交Pu... 阅读全文
posted @ 2019-10-10 20:10 浩月星空 阅读(678) 评论(0) 推荐(0) 编辑
摘要:GitHub Flow 开发流程:以部署为中心 0. 始终保持master主干分支为可发布、部署的状态(这样可以时刻被创建特性分支或者可以被部署) 1. 新特性、作业或者修改BUG,从主干分支创建新的本地分支(该分支应具有描述性的名称),若该分支已存在,应先git pull更新为远程仓库master主干分支的最新状态 2. 确认在本地环境中通过所有测试,此后便可修改新建... 阅读全文
posted @ 2019-10-10 20:07 浩月星空 阅读(630) 评论(0) 推荐(0) 编辑
摘要:Git仓库维护: 0. Fork或者clone来的仓库,可能与原仓库源码不是最新的,需要时常更新以与原仓库一致 1. Fork某原仓库至github账户下 2. clone该Fork后的仓库至本地仓库 3. 给原仓库设置某个简易的名称,如update-project,并将其作为远程仓库;也即是以up 阅读全文
posted @ 2019-10-10 20:02 浩月星空 阅读(404) 评论(0) 推荐(0) 编辑
摘要:一、RC资源的使用 资源相关 资源脚本文件:*.rc文件 编译器:RC.EXE 菜单资源的使用 1 添加菜单资源:通过菜单栏中插入(rc)菜单资源。或直接添加资源脚本到工程中。 2 加载菜单资源 2.1 在注册时设置菜单资源 2.2 加载菜单资源,设置到窗口 HMENU LoadMenu( HINS 阅读全文
posted @ 2019-10-10 13:29 浩月星空 阅读(496) 评论(0) 推荐(0) 编辑
摘要:软件优化的必要性; 1. 优化为软件开发的一部分 2. 优化是高效的且可持续的 3. 软件的活力、生命周期的延续 改善代码性能的一些策略: 1. 使用更好的编译器以及编译选项 2. 使用最优算法 3. 使用更好的库并用好库 4. 减少内存分配和复制操作 5. 移除不必要的计算操作,优化热点代码 6. 使用最优的数据结构 7. 提高并发性以更快地处理 8. 优化内存管理 影响优化的计算机的行为... 阅读全文
posted @ 2019-10-10 13:27 浩月星空 阅读(326) 评论(0) 推荐(0) 编辑
摘要:在线程间划分工作的技术: 划分数据的方式:得到最优性能在很大程度上决定于数据结构的细节; 1、开始处理前的预先划分,最简单的做法便是划分数据给不同的工作任务, 也即将一个任务划分为多个并行的任务集,工作的线程独立运行这些任务,并在后期的化简步骤中合并结果。 2、递归地划分数据,避免产生过多的线程,但是线程间通信可能会带来复杂性。 划分任务... 阅读全文
posted @ 2019-10-10 13:26 浩月星空 阅读(229) 评论(0) 推荐(0) 编辑
摘要:无锁数据结构: 不使用锁就能实现安全并发地存取的数据结构,可避免数据竞争、死锁、或锁引起性能限制等,以实现最大程度的提高并发性。 设计正确的无锁或无等待的数据结构是比较困难的,若确定需要无锁的情况下产生的收益高于代价时才应考虑(这个需要在多各方面考虑)。 无锁数据结构优缺点: 优点: 1. 最大限度的提高并发性,减少了线程等待的时间; 2. 提高健壮性,避免锁机制引入可能导致的数据结构损坏。 缺点 阅读全文
posted @ 2019-10-10 13:25 浩月星空 阅读(416) 评论(0) 推荐(0) 编辑
摘要:数据结构: 作为程序设计问题中的关键部分,并行程序设计问题也需要处理数据结构,数据结构本身要么不需要同步,要么通过同步机制来保障如互斥体、锁等; 并发设计含义: 多个线程可同时使用此数据结构且执行相同或不同的操作,满足每个线程针对数据结构有一致性的视图,不会破坏或者丢失数据等竞争条件,则为线程安全的。 数据结构的操作接口中若抛出了异常,但并没有修改数据结构,则认为是异常... 阅读全文
posted @ 2019-10-10 13:24 浩月星空 阅读(307) 评论(0) 推荐(0) 编辑
摘要:内存模型: C++内存位置布局,参见struct结构体/class类成员/全局、静态变量在内存中的布局。 多个线程修改某位置的值,应按照某个顺序修改或者读取,否则可能出现数据竞争或未定义行为。 原子操作: 类似于事务操作,对对象值的修改或者读取都是原子的,不会出现修改部分或读取到失效值的情况。 标准原子类型std::atomic模板类型,提供了多个内置类型的特化... 阅读全文
posted @ 2019-10-10 13:23 浩月星空 阅读(569) 评论(0) 推荐(0) 编辑
摘要:等待事件: 条件变量等待: std::condition_variable/std::condition_variable_any,前者配合std::mutex以及std::unique_lock、std::lock_guard, 后者可配合类似互斥体(包括互斥体)的类型工作,不过因其内部持有std::mutex对象成员的锁保护,性能和大小上会有一定的代价。 ... 阅读全文
posted @ 2019-10-10 13:22 浩月星空 阅读(268) 评论(0) 推荐(0) 编辑
摘要:竞争条件: 进程中各个线程可共享数据,既是优点也是缺点,而导致不同线程操作数据出现异常的情况时,竞争条件是其中之一。 避免竞争条件: 一:采用保护机制,封装正在修改的或访问的数据结构,确保其他线程在共享数据被修改前或修改后才可见可访问。 二:修改数据结构设计、或者使用不变量,如无锁编程(无锁数据结构等)。 互斥体保护: 互斥体作为同步原语,可确保一个线... 阅读全文
posted @ 2019-10-10 13:21 浩月星空 阅读(266) 评论(0) 推荐(0) 编辑
摘要:等待线程完成: join;只可调用一次,此外最好在调用之前调用joinable测试是否可调用;此外调用join后线程已不可用,joinable将fanhuifalse。 分离线程: detach:一般作为后台运行的线程,有时候还是有用的。但需要处理好线程所持有的资源、生命周期的问题,可以使用长生命周期的资源 或者拷贝一份资源到该线程的堆栈里而不是共享使用资源。调用detach后线程执行与线程对象将 阅读全文
posted @ 2019-10-10 13:19 浩月星空 阅读(209) 评论(0) 推荐(0) 编辑
摘要:何为并发: 两个或者多个独立活动同时发生,对于单核心的任务切换也认为是并发。 目前真正有意义的是硬件并发,对于多核心多线程的任务,并发程度取决于可用的硬件并发。 任务切换存在一定的上下文切换开销,以保存当前CPU状态、PC、指令等, 同样的切换回另个任务时需要重新加载早期的处理状态、内存载入缓存等。 另外并发和并行也存在一定的差异。 并发方式: 多进程并发:进程间独立执行任务,且通过进程间通信传递 阅读全文
posted @ 2019-10-10 13:17 浩月星空 阅读(420) 评论(0) 推荐(0) 编辑
摘要:glog为google开源库用于实现应用层日志记录,提供了基于C++ Stream流及各种帮助宏定义的日志记录接口,提供到控制台、文件的日志记录功能; 以下以基于windows平台下,最基本框架使用入手,分析该开源项目,示例代码; #define GOOGLE_GLOG_DLL_DECL #defi 阅读全文
posted @ 2019-10-10 13:04 浩月星空 阅读(2870) 评论(0) 推荐(0) 编辑
摘要:ProtoBuf项目描述: Google Protocol Buffer简称protobuf,为高效的二进制序列化/反序列化协议(一般为google内部使用),不同于xml、json等,其更小巧、高效;avro、thrift等; 其可用于网络协议、数据存储等语言无关、平台无关、可扩展的序列化结构数据格式。只要按照特定条件可支持向前、向后兼容;目前提供了C++、Java、Python 三种... 阅读全文
posted @ 2019-10-10 12:50 浩月星空 阅读(3230) 评论(0) 推荐(1) 编辑
摘要:char_traits.h : __char_traits_base:字符特性模板基类: 内部重声明了char_type字符类型,int_type整型类型; 此外提供了多个静态成员函数,如: assign:分配函数,将源字符内容赋值给目标字符;此外还有一个重载版本,其将某个字符赋值给指定长度n的字符串缓冲区,即赋值n次(注意目标缓冲区大小不可小于n); eq:相等比较函数,比较两个参数字符内容,相 阅读全文
posted @ 2019-10-10 12:39 浩月星空 阅读(300) 评论(0) 推荐(0) 编辑
摘要:stl_set.h : set:有序关联容器,值类型和键类型为同一个,且各个容器元素唯一,插入或删除在线性时间内完成,此外插入等操作不会影响迭代器失效的情况; set:关联容器set模板类,其参数分别为_Key、_Compare、_Alloc,对应键值类型、比较函数、内存分配器; 此外提供了特化版本,其比较函数使用的是less,分配器使用宏__STL_DEFAU... 阅读全文
posted @ 2019-10-10 12:36 浩月星空 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:34 浩月星空 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:32 浩月星空 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:31 浩月星空 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:30 浩月星空 阅读(257) 评论(0) 推荐(0) 编辑
摘要:stl_bvector.h : bit_vector 重声明为vector即使用alloc作为内存分配器,其为非模板类,__BVECTOR也即vector为模板类,若使bit_vector重声明为__BVECTOR则也可为模板类; 相比vector,其可保持一个位一个元素而不是至少一个字节一个元素;此外基本的函数和vector相同,还有其他额外的提供的接口实现; bit_... 阅读全文
posted @ 2019-10-10 12:29 浩月星空 阅读(531) 评论(0) 推荐(0) 编辑
摘要:utility: stl_relops.h : 内部提供了重载模板operator!=、operator>、operator=,而这几个模板函数内部使用到了operator==以及operator其中T*为 申请到的空间地址,第二个参数为实际分配到的空间大小;最大可申请大小为INT_MAX / sizeof(T);申请策略为:先调整申请大小并申请需求大小空间(内部通过malloc... 阅读全文
posted @ 2019-10-10 12:27 浩月星空 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:26 浩月星空 阅读(159) 评论(0) 推荐(0) 编辑
摘要:stl_construct.h : 提供多种构造器、销毁器模板函数; 构造器construct提供了给定值构造和默认构造方式,通过调用重载函数_Construct实现; 销毁器destroy提供了销毁指针和迭代器的方式,通过调用重载函数_Destroy实现; _Construct:通过“放置”new,构造实现; _Destroy:通过调用模板类型对象析构函... 阅读全文
posted @ 2019-10-10 12:25 浩月星空 阅读(152) 评论(0) 推荐(0) 编辑
摘要:stl_exception.h : 异常处理,通过宏提供可继承于标准exception或简易异常基类_Exception作为整个STL的异常基类; stdexcept : __Named_exception命名异常基类,继承于stl_exception.h中的异常基类,_M_name:最大256字节数组,保存异常信息; 其他异常类,如继承体系(分为两大类:逻辑错... 阅读全文
posted @ 2019-10-10 12:24 浩月星空 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-10 12:22 浩月星空 阅读(484) 评论(0) 推荐(0) 编辑
摘要:一、QT与JS/HTML通信交互 前提: 提前连接QWebFrame的javaScriptWindwoObjectCleared信号时将自身对象添加到JS窗口对象中,也即是:QwebFrame::addToJavaScriptWindowObject(“someobj”, this); 其中someobj便是JS中可调用的QT对象名称,即someobj指代传入的this对象; 其次,JS中可调用的 阅读全文
posted @ 2019-10-10 11:44 浩月星空 阅读(365) 评论(0) 推荐(0) 编辑
摘要:第一部分 基本操作 以Ubuntu16.04操作系统为例(其他系统类似),主要记录常用的、基本操作: 0. 安装Git 分散型版本控制系统(CVS); sudo apt-get install git 1. 初始化本地配置git或其他配置等(配置仓库或者全局选项,一般保存在.gitconfig中) 阅读全文
posted @ 2019-10-10 11:37 浩月星空 阅读(336) 评论(0) 推荐(0) 编辑
摘要:VS2010支持C++11特性的部分记录: 语言特性: 1. 右值引用 2. static_assert 3. auto 4. decltype 类型提取 5. 结尾返回类型,即函数返回类型声明后置,类似于auto func(int i, int j) -> int; 6. Lambdas表达式 7 阅读全文
posted @ 2019-10-10 11:25 浩月星空 阅读(2737) 评论(0) 推荐(0) 编辑
摘要:目标 需支持种类繁多的数据类型、跨语言、跨平台、高性能、兼容性且可扩展 数据类型系统 传输层 Transport 编码/解码层(或序列化/反序列化,协议层) Protocol 版本系统 支持可插拔、兼容的数据的机制 处理器 生成代码和RPC调用 Processor 特性和非特性 特性 中间语言描述文 阅读全文
posted @ 2019-10-10 11:20 浩月星空 阅读(424) 评论(0) 推荐(0) 编辑
摘要:即 Windows 下的命名空间扩展 命名空间扩展 一种允许将外部自定义的信息集成到windows资源管理器,以用户自定义显示方式来处理数据信息,资源管理器提供必要的控制、交互接口、GUI实现。 实现命名空间扩展 一个文件件管理器对象,用于请求其其需要的信息 一个显示文件夹内容的视图窗口 一个枚举文 阅读全文
posted @ 2019-10-10 11:16 浩月星空 阅读(2542) 评论(1) 推荐(0) 编辑
摘要:一、COM组件基础 1.程序的编写方式 1) 面向过程的结构化编程 自顶向下的编程方式(流程图) 2) 面向对象的编程 以对象或以类为中心,更符合人的思维习惯,通过模拟现实情况完成软件的编写。(类图) 3) 面向组件的编程 将一些功能直接封装成可以执行的二进制模块,类似于搭积木的方式。更适合大型项目 阅读全文
posted @ 2019-10-10 11:04 浩月星空 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:一、 Windows 内存管理 2.1 用户地址空间 0 - 2G(0x7FFFFFFF )存放用户的程序和数据。用户空间的代码是不能访问内核空间的数据和代码。 2.1.1 空指针区(NULL区,0-64K)系统将地址小于64K指针,都认为是空指针。 2.1.2 用户区 64K~ 0x7FFEFFF 阅读全文
posted @ 2019-10-10 10:59 浩月星空 阅读(593) 评论(0) 推荐(0) 编辑
摘要:1、 多文档界面(MDI) MDI主窗口(主框架窗口MainFrame) MDI客户窗口(MDICLIENT) MDI 子窗口1 MDI 子窗口2 ……. 1)创建MDI主窗口 a) 没有父窗口,需要注册窗口类,定义窗口过程函数 b) MDI主窗口的窗口过程函数,不再调用DefWindowProc。 阅读全文
posted @ 2019-10-10 10:58 浩月星空 阅读(623) 评论(0) 推荐(0) 编辑
摘要:一、 文字 1.绘制文字: TextOut – 绘制单行文字: 将文字绘制在指定坐标位置 BOOL TextOut( HDC hdc, // 设备上下文 int nXStart, // 文本行开始位置 int nYStart, // LPCTSTR lpString, // 文本串 int cbSt 阅读全文
posted @ 2019-10-10 10:56 浩月星空 阅读(855) 评论(0) 推荐(0) 编辑