开发:C/C++
文章平均质量分 54
flyoxs
这个作者很懒,什么都没留下…
展开
-
我与 Run-Time Check #0 的第一次亲密接触
某一天写程序,调试时突然出现如下的错误提示: Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling conventi原创 2008-07-14 10:38:00 · 991 阅读 · 0 评论 -
Qt4.6.2已编译二进制版本在VS2005中的问题
结论1:如果你想把Qt4.6.2安装在VS2005中,又不想花时间编译,请下载和安装qt-win-opensource-4.6.2-vs2008,并单独编译“QT安装路径/src/winmain/” 结论2:在安装qt-win-opensource-4.6.2-vs2008(msvc9/vs2008已编译版)之前千万不要安装qt-sdk-win-opensource-2010.02.1(m原创 2010-05-18 16:39:00 · 3831 阅读 · 2 评论 -
界面库选型——Qt
界面库选型——Qt的一些Key point原创 2010-06-01 15:25:00 · 13287 阅读 · 8 评论 -
笔记:C语言知识点恢复
今天去面试,笔试题是一份传统的C语言题目,虽然不难,但居然忘记了好多。发现如果有一份自己专用的知识点恢复列表,以后每次面试,就能立即恢复了。没办法,很多知识点其实用得不多,但面试官为了快速校验应聘都的水平,这种笔试题也是没办法的事。我还是支持非钻牛角尖类的试题的。 该文档将不断完善。原创 2011-06-16 14:00:00 · 1909 阅读 · 0 评论 -
笔记:系统编程知识点恢复
进程基本状态转换 同步与互斥的关系 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源 线原创 2011-06-16 15:32:00 · 2090 阅读 · 0 评论 -
笔记:系统编程知识点恢复
进程基本状态转换 同步与互斥的关系 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源 线原创 2011-06-16 14:43:00 · 2308 阅读 · 0 评论 -
如何编写Linux Daemon后台程序(守护进程)
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许转载 2011-07-28 13:00:34 · 2424 阅读 · 0 评论 -
使用代码检查工具解决C++潜在的bug
创建和使用工具是人与动物的本质区别,对于程序猿尤是。C/C++代码可能有太多的陷阱,一不小心就可能出错,而定位错误可能会花上几倍甚至上百倍的时间。C/C++代码检查工具,常用的有:cppcheck :开源免费的静态代码检查工具pc-link :商业软件Parasoft C++test :是Parasoft针对C/C++的一款自动化测试工具,支持编码策略增强,静态分析,全面代原创 2016-11-15 15:56:22 · 4285 阅读 · 0 评论 -
Parasoft c++test安装使用导引
Parasoft c++test安装使用导引简介Parasoft C++ test 是一个集成解决方案,用于使一系列被广泛证明可改进软件开发团队生产力和软件质量的最佳实践得以自动化处理。通过C++ test,可进行编码策略增强、静态分析、综合代码复审、单元测试和组件测试、以及运行时错误检测,以此向团队提供一种确保 C 和 C++ 代码达到其预期功能的实用方法。C++ test 可以在桌面上 IDE原创 2016-12-08 20:35:59 · 19420 阅读 · 1 评论 -
LGPL与闭源程序
最近一直在学习 Qt。Qt 有两个许可证:LGPL 和商业协议。这两个协议在现在的 Qt 版本中的代码是完全一致的(潜在含义是,Qt 的早期版本,商业版的 Qt 通常包含有一些开源版本所没有的库,比如 QtSingleApplication 这个库)。所以现在对于普通开发人员和部分商业公司来说,使用 LGPL 版本的 Qt 可以节省很大的开销。这两个版本最大的区别在于,前者是免费的,后者是收费的。既然代码都是一致的,所以费用就要是用来购买 Qt 的售后服务和培训等等相关服务。现在我们是来说一转载 2010-07-13 13:53:00 · 1056 阅读 · 0 评论 -
使用Qt编写模块化插件式应用程序
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来。比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用。另一方面,对于商业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少了整原创 2010-04-30 15:45:00 · 17435 阅读 · 6 评论 -
请在使用前,初始化它
标题没写完整,在此补充:请在使用变量前,初始化它!这是显而易见的,有很多人却经常忘记初始化。在C#中,如果一个变量不经初始化,连编译都通不过。今天在调试程序时,在某个类A中加了一句变量定义语句,编译Release版本,运行,程序某功能不工作了!切换到Debug版本,运行又正常。怪事年年有,今年特别多。我仅仅添加了一句类变量的定义,没有其它任何代码,Release版本程序运行却变得不正常原创 2008-10-15 08:54:00 · 894 阅读 · 0 评论 -
如何混合使用C和C++ (转)
如何混合使用C和C++(上) [32] How to mix C and C++ 如何混合使用C和C++(Part of C++ FAQ Lite, Copyright © 1991-2006, Marshall Cline, cline@parashift.com)Translator: Qiu Longbin FAQs in section [32]:·转载 2008-11-14 08:36:00 · 1338 阅读 · 0 评论 -
可变参数函数定义及其陷井
一、关于可变参数的函数定义方法注:本节原文摘自互联网,笔者对它进行了必要的编辑和扩展。原作者尚未查知,在此表示歉意和感谢。 某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的呢?C编译器通常提供了一系列处理这种情况的宏,以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va转载 2009-04-22 08:51:00 · 5254 阅读 · 4 评论 -
程序员的自我修养
前日闲逛书城,偶得一书,曰:《程序员的自我修养》。第一感觉就是:标题党;第二感觉,想到周星星在《喜剧之王》中的宝贝,那本北极毛毛熊写的《演员的自我修养》。 从书架中抽出略翻少息,立即被书中内容吸引,尽解某之前所惑,恍然而悟。固有了第三感觉:好书! 书的全标题是《程序员的自我修养:链接、装载与库》。内容是教科书中找不到的,涉及计算机系统软件较底层的知识:在main函数执行前和执行后,系统做了那些工作原创 2009-09-28 19:26:00 · 882 阅读 · 1 评论 -
对象内存管理经验谈
不得不说,C/C++强大的功能和灵活的操纵性,一直是我的至爱。哲人说过,任何事物都有其矛盾的两面性,此话诚不欺我也!C++,你把伟大的内存管理工作交给了我们,而我们却经常用不好你。 关于对象内存管理,最常见的问题就是:1. 内存访问冲突,具体表现就是程序运行时,突然跳出一个警示框“0xFA012345……该内存不能为Read。”确定,程序崩溃。2. 内存泄漏,这个一般很少表现出来,原创 2010-01-25 09:10:00 · 800 阅读 · 0 评论 -
内存泄漏的跟踪和解决办法
再次抱怨下:编写C++程序,最烦人的事情就是对象的内存管理工作。好不容易把内存访问冲突问题搞定,又跑出内存泄漏一渣。 幸运的是,C++的IDE会帮我们找出程序的内存泄漏。不幸的是,IDE老是在程序退出调试时提醒我们找到内存泄漏,无形中给我们极大的压力。苦笑一下。 看了很多资料(包括MSDN),都说要添加下面的语句,在调试时才能输出内存泄漏信息:#define _crtdbg_m原创 2010-01-25 10:43:00 · 2115 阅读 · 1 评论 -
导出类引起的 DLL Hell
DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也转载 2010-04-27 17:04:00 · 1377 阅读 · 1 评论 -
DLL 导出类的问题
使用DLL的一个比较严重的问题就是编译器之间的兼容性问题。不同的编译器对c++函数在二进制级别的实现方式是不同的。所以对基于C++的DLL,如果编译器不同就有很麻烦的。如果创建的是MFC扩展DLL,就不会存在问题,因为它只能被动态连接到MFC的客户应用程序。这里不是本文讨论的重点。 一、重新编译问题 我们先来看一个在实际中可能遇到的问题:比如现在建立好了一个DLL导出了CMy转载 2010-04-28 11:07:00 · 5870 阅读 · 2 评论 -
QWaitCondition 的正确使用方法
简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往下执行。为了描述方便,这里假设主线程调用Send()往通信口发送一个数据包,然后阻塞等待回包才继续往下执行。另一个线程(通信线程)不断从通信口中接收数据并解析成数据包,然后唤醒主线程。下面是按网上给的最原创 2017-01-19 16:23:34 · 51765 阅读 · 23 评论