现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2014-11-01 06:33 工业·编程 ⁄ 共 1848字 暂无评论
场景: 一个多线程的C++程序,24h x 5.5d运行。有几个工作线程ThreadW{0,1,2,3},处理客户发过来的交易请求,另外有一个背景线程ThreadB,不定期更新程序内部的参考数据。这些线程都跟一个hash表打交道,工作线程只读,背景线程读写,必然要用到一些同步机制,防止数据损坏。这里的示例代码用std::map代替hash表,意思是一样的: typedef map<string, vector<pair<string, int> > > Map; map 的 key 是用户名...
阅读全文
经过前面4课,我们已经可以完成以下几个工作:         1)创建OpenGL环境         2)创建与OpenGL绑定的窗口         3)处理窗口消息         4)产生空间点         5)发送空间点给GPU         6...
阅读全文
李运华,专注于Linux、MySQL、开源技术、系统分析、架构设计,有丰富的需求分析、系统设计、编程的经验,热爱技术但不拘泥于技术。喜欢挑战,从各方面不断提升自己。 CSDN:请和大家介绍下你和目前所从事的工作。 李运华:大家好,我是来自UC的软件工程师,已经在软件领域摸爬滚打10年了,先后经历了电信行业和互联网行业。毕业后首先是去了华为,做核心网的系统开发,做过软件工程师、系统分析师;后来换到现在所在的UC,先后...
阅读全文
本文主要讨论 Linux x86 平台,会继续举 Windows/COM 作为反面教材。 本文是上一篇《C++ 工程实践(4):二进制兼容性》的延续,在写这篇文章的时候,我原本以外大家都对“以虚函数作为接口”的害处达成共识,我就写得比较简略,看来情况不是这样,我还得展开谈一谈。 “接口”有广义和狭义之分,本文用中文“接口”表示广义的接口,即一个库的代码界面;用英文 interface 表示狭义的接口,即只包含 virtual function 的 class,这种 cl...
阅读全文
      通过前面3章,我们得到了一个只需要使用微软opengl32.lib和glew32.lib的用于开发OpenGL程序的基本框架。这个框架是基于win32 api的,这样的程序框架好处是它最为简单,只使用尽可能少的第三方库和尽可能少的封装,这样才容易搞明白真正的底层原理。         但一旦开始编写实际有用的程序,我们总是会使用到各种各样的第三方库,对OpenGL来说,需要处理的最...
阅读全文
HTML5是如今最先进的WEB开发技术,虽然已经沿用了多年,但是HTML5的技术标准,其实上并未明确制定完成。日前,互联网权威技术组织万维网联盟(W3C)正式宣布,历时八年的HTML5标准制定全面完成,正式开始面向行业作出采用推荐。 W3C是全球有关互联网WEB技术的权威技术标准组织,推动了互联网尤其是HTML技术的一代代演进。该组织表示,在过去多年时间里,他们联合了全球60多家公司,共同完善HTML5标准,其中解决了4000多个BUG。 ...
阅读全文
2014-10-30 06:51 工业·编程 ⁄ 共 4335字 评论 1 条
本文主要讨论 Linux x86/x86-64 平台,偶尔会举 Windows 作为反面教材。 C/C++ 的二进制兼容性 (binary compatibility) 有多重含义,本文主要在“头文件和库文件分别升级,可执行文件是否受影响”这个意义下讨论,我称之为 library (主要是 shared library,即动态链接库)的 ABI (application binary interface)。至于编译器与操作系统的 ABI 留给下一篇谈 C++ 标准与实践的文章。 什么是二进制兼容性 在解释这个定义之前,先看...
阅读全文
       OpenGL3.0(含3.0)之前的规范中存在固定流水线(fixed-functionpipeline),这时的编程风格我称之为“旧风格”,也称为“立即模式(intermediate mode)”。2.4节中的glBegin…glEnd…glFlush这样的代码就是例子。         从OpenGL 3.1开始,规范中删除了固定流水线的内容,这意味着从“支持”的角度来说,旧风格的OpenGL从3.1版开始不受支持了。当然,从编程...
阅读全文
版本管理(version controlling)是每个程序员的基本技能,C++ 程序员也不例外。版本管理的基本功能之一是追踪代码变化,让你能清楚地知道代码是如何一步步变成现在的这个样子,以及每次 check-in 都具体改动了哪些内部。无论是传统的集中式版本管理工具,如 Subversion,还是新型的分布式管理工具,如 Git/Hg,比较两个版本(revision)的差异都是其基本功能,即俗称“做一下 diff”。 diff 的输出是个窥孔(peephole),它的上下文有...
阅读全文
     第一章介绍了如何在Windows下仅使用VS或SDK自带库创建OpenGL环境的方法,并极简单的介绍了Windows平台上OpenGL的历史。微软开发OpenGL的历史如此之短,之后就全力开发自己的亲儿子:DirectX。从此之后Windows平台对OpenGL的内置支持就停留在OpenGL 1.1版。当然,在Vista之后,微软甚至开发了一个OpenGL到DirectX的转换层,支持到OpenGL 1.4,这使得系统在没有安装支持OpenGL的显卡驱动时仍然能够运行...
阅读全文