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