C/C++
廖子鸿
专注于移动互联网及智能硬件
展开
-
VS2008无法找到MSVCR90D.dll的问题
问题:在DEBUG模式下,调试时出现“无法找到MSVCR90D.dll…”的问题。 其他症状:在Release模式下就没有问题。 原因:这个是VS2008的一个BUG,由FAT32文件格式引起。 解决办法: 方法一: 英文版:Project Properties -> Manifest Tool-> Use FAT32 Work-around -->Yes 中文版:项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法—>是 然后cl转载 2010-07-05 17:07:00 · 2992 阅读 · 0 评论 -
#define宏定义的简单总结
1.常规用法 1: #define PI 3.1415926 2: #define CHAR_A 'a' 3: #define STRING_A "a".codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; over原创 2010-12-14 16:02:00 · 11153 阅读 · 0 评论 -
C++中函数动态绑定
只有采用“指针->函数()”或“引用.函数()”的方式调用C++类中的虚函数才会执行动态绑定,非虚函数并不具备动态绑定的特征,不管采用任何方式调用都不行。 下面代码中,一个java或者C#的程序员容易犯的一个错误。 1: class Base 2: { 3: public: 4: Base() { p = new char ; } 5: ~Base() { delete p; } 6: private:原创 2010-10-10 10:44:00 · 2215 阅读 · 0 评论 -
面向对象的基本原则
开闭原则:软件架构应该是对扩展开发,对修改关闭 里氏(Liskov)替换原则:任何基类可以出现的地方,派生类一定可以出现 依赖倒转原则:要依赖于抽象,不要依赖于实现 接口隔离原则:应当为客户提供尽可能小的接口,而不是提供大的接口。 组合、聚合复用原则:要尽量使用组合、聚合,而不是继承关系以达到复用的目的。 Demeter法则:一个软件实体应该与尽可能少的其他实体发生互相作用。 除此之外,还有一些需要注意的地方: 包与包之间不能够有循环依赖关系 不要重复自己:任何代码都原创 2010-10-10 11:27:00 · 728 阅读 · 2 评论 -
VS2008中显示内存泄漏
在VS2008中需要增加几句代码来显示C++程序中的内存泄露,代码如下: 1: #define _CRTDBG_MAP_ALLOC 2: #include 3: #ifdef _DEBUG 4: #define new new(_NORMAL_BLOCK,__FILE__,__LINE__) 5: #endif 6: 7: int main() 8: { 9: /*原创 2010-10-10 10:43:00 · 1808 阅读 · 0 评论 -
GCC输出带C源代码的汇编文件
摘要: 使用GCC输出带C源代码的汇编文件,这样便于对应着源代码来查看汇编代码 关键字: GCC 源代码 汇编 使用GCC输出带C源代码的汇编文件有两种方式, 第一种方式 gcc –c –S source.c objdump –S source.o 首先生成带生成目标文件,然后使用objdump命令,显示源代码与汇编代码的混合文件 这种方式生成的信息较少,但是主要的信息是足够了 第二种方式 使用GNU C Assembler的列表功能来完成,例如: gcc –c –g –Wa原创 2010-09-22 17:24:00 · 13093 阅读 · 0 评论 -
C++构造函数调用构造函数问题
摘要:本文介绍了在C++中实现构造函数调用构造函数的实现方法。 关键字:C++ 构造函数 定位new placement new 最近在整理C++知识的时候,突然想到如何在C++中实现构造函数调用构造函数的问题,常见的错误是按照如下方式来调用: 1: #include 2: 3: class Test 4: { 5: public: 6: int m_a; 7:原创 2010-09-09 11:32:00 · 4426 阅读 · 1 评论 -
C语言隐式类型转换规则
摘要: 记录一下C语言中的隐式类型转换规则,在一些特殊情况下需要注意 关键字: C语言 隐式类型转换 C语言规定,不同类型的数据需要转换成同一类型后才可进行计算,在整型、实型和字符型数据之间通过类型转换便可以进行混合运算(但不是所有类型之间都可以进行转换) 当混合不同类型的变量进行计算时,便可能会发生类型转换相同类型的数据在转换时有规则可循: 字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) short型转换为int型(同属于整型) float型数据原创 2010-09-20 19:26:00 · 4353 阅读 · 0 评论 -
C/C++的一些预定义宏
摘要:C/C++中有一些预定义宏,同过这些宏可以使得调试更加方便 关键字: C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文字 __LINE__:当前源代码中的行号的整数常量 __DATE__:进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __TIME__:源文件编译时间,格式微“hh:mm:ss” __func__:当前所在函数原创 2010-09-15 11:32:00 · 3755 阅读 · 2 评论 -
一个C/C++中的移位操作问题
摘要:关于c/c++中由于CPU位宽造成的一个移位操作问题,b = ~a>>1中b的值的问题。 先看一段代码: 1: #include 2: 3: int main() 4: { 5: unsigned char a = 0xAA ; 6: unsigned char b = 0x00 ; 7: b = ~a>>1 ; 8: printf("0x%X",b) ;原创 2010-08-04 14:17:00 · 6834 阅读 · 0 评论 -
全局变量与局部变量
一个程序将操作系统分配给其运行的内存块分为4个区域: (1)代码区,存放程序的代码,即程序中的各个函数代码块。 (2)全局数据区,存放程序的全局数据和静态数据。 (3)堆区,存放程序的动态数据。 (4)栈区,存放程序的局部数据,即各个函数中的数据。原创 2010-07-26 15:22:00 · 1914 阅读 · 0 评论 -
DDE,OLE,COM,ActiveX,DCOM,COM+发展史
DDE:Dynamic Data Exchange,主要解决进程间通信问题,局限在于通信数据量以及网络数据通信,之后出现过NetDDE、FastDDE和AdvancedDDE等扩展版。 OLE:Object Linking and Embedding,对象连接与嵌入,提供了建立复合文档的方法。1.0版本中使用了Virtual Function Table(VTBL)技术,在2.0中已经由COM取代。 OLE Custom Controls:当时作为一种VB Extension控件的替代原创 2010-07-20 20:42:00 · 4723 阅读 · 0 评论 -
DirectUI简介
DirectUI介绍及几个DirectUI技术的开发软件原创 2010-07-13 16:55:00 · 8845 阅读 · 1 评论 -
viksoe.dk网站
网址:http://www.viksoe.dk/code/windowless1.htm 包含bjarke的许多windows C++的源程序代码,其中包括可以窥探DirectUI技术的UILib的示例及源代码原创 2010-07-12 17:26:00 · 2202 阅读 · 0 评论 -
[转]Google Chrome 源码下载
Goolgle 于 2008.09.02 发布了浏览器 Google Chrome。 Google Chrome 使用的内核源码来自 开源浏览器引擎 WebKit Open Source Project。 Google Chrome 的源码,同样亦是开源的。在 Google 的中文官方 Blog - Google 黑板报中,提到: QUOTE: 我们对很多开发开源项目的人心存感激,我们承诺会沿着前人的路继续前行。 我们借鉴了一些源自 Apple WebKit 和 Mozilla Firefox转载 2010-01-09 06:55:00 · 1826 阅读 · 0 评论 -
[转]Linux静态/动态链接库的创建和使用
和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: 生成静态库: 利用GCC生成对应目标文件: gcc –c Strlen.c转载 2010-11-22 16:20:00 · 776 阅读 · 0 评论