Jane.T

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  C++

1 2 下一页

摘要:所谓句柄实际上是一个数据,是一个Long (整长型)的数据。 句柄是WINDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。 从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,... 阅读全文
posted @ 2011-02-10 17:31 Jane.T 阅读(981) 评论(0) 推荐(0)

摘要:在此记录一个fix bug时遇到的问题: 背景: ProjectA用到了一个第三方的dll(AcGe18.dll). 加载该dll时出错,无法加载。原因是该dll的另一个老版本在ProjectB中已经加载过了。所以再次加载时失败。 我们代码中有两个地方要使用这个dll,但是使用的版本却不一样。这是根本的原因。 所以应该有两种方法去解决这个问题: 1. 让两个使用该dll的地方调用同一个新版本的dl... 阅读全文
posted @ 2011-01-31 13:43 Jane.T 阅读(359) 评论(0) 推荐(0)

摘要:COM即组件对象模型(Component Object Model)是一种跨应用和语言共享二进制代码的方法。COM明确指出二进制模块(DLLS和EXES)必须被编译成与指定的结构匹配,其定义的二进制标准独立于任何编程语言。这样就可以轻松地从任何编程语言中存取这些模块。 coclass即组件对象类(component object class)被包含在DLL或EXE中,并包含着一个或多个接口的代码。... 阅读全文
posted @ 2010-08-01 20:27 Jane.T 阅读(401) 评论(0) 推荐(0)

摘要:Problem: CLR project使用了两个第三方的library文件,在这两个library文件中出现了重复定义,错误信息如下: error LNK2005: "public: operator ss already defined in YYYY.lib(CCCC.obj) File: XXXX.lib(BBBB.dll) symbol already defined in object... 阅读全文
posted @ 2010-07-24 18:42 Jane.T 阅读(215) 评论(0) 推荐(0)

摘要:VC创建项目时自动创建的预编译头文件,在编译其他文件之前,VC先预编译此文件。头文件stdafx.h引入了项目中需要的一些通用的头文件,比如window.h等,在自己的头文件中包括stdafx.h就包含了那些通用的头文件。 Standard Application Fram Extend 没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。 Windows和... 阅读全文
posted @ 2010-07-19 22:03 Jane.T 阅读(295) 评论(0) 推荐(0)

摘要:Volatile限定修饰符 =========================================================== 当一个对象的值可能会在编译器的控制或检测之外被改变时,例如一个被系统时间更改的变量,那么这个变量就应该声明成volatile。 其主要作用是提示编译器,该对象的值可能在编译器未检测到的情况下被改变。因此编译器执行的某些例行优化行为不能应用在已指定为vo... 阅读全文
posted @ 2010-03-01 23:24 Jane.T 阅读(411) 评论(0) 推荐(0)

摘要:typedef机制用来为内置的或用户定义的数据类型引入助记符号。 typedef定义以关键字typedef开始,后面是数据类型和标识符。它没有引入一种新的类型,而只是为现有类型引入了一个助记符号。 typedef名字可以被用作程序文档的辅助说明,它也能降低声明的复杂度。 以后会有详细介绍。 例如:typedef double wages;typedef vector<int> vec_... 阅读全文
posted @ 2010-02-21 23:49 Jane.T 阅读(244) 评论(0) 推荐(0)

摘要:复数(complex number)类是标准库的一部分。为了使用它,我们必须包含头文件:#include <complex>每个复数都有两部分:实数部分和虚数部分。虚数代表负数的平方根。复数的一般表示方法为: 2 + 3i (2代表实数部分,3i代表虚数部分)复数的定义====================================================复数对象的定义... 阅读全文
posted @ 2010-02-21 23:18 Jane.T 阅读(2544) 评论(0) 推荐(0)

摘要:数组定义由类型名、标识符和维数组成。维数指定数组中包含的元素的数目,它被写在一对方括号里面。维数值必须是常量表达式。 int ia [10]; //声明了一个包含10个int对象的数组 数组是一个单一数据类型对象的集合。 其中单个对象并没有被命名,但是我们可以通过它在数组中的位置对它进行访问。 这种访问形式叫做索引访问(下标访问)。 每个对象被称为是ia的一个元素(element)。每个元素都可以... 阅读全文
posted @ 2010-02-16 15:13 Jane.T 阅读(824) 评论(0) 推荐(0)

摘要:布尔类型 ================================================== 布尔类型对象可以被赋予文字值true或false。 当表达式需要一个算术值的时候,布尔对象和布尔文字都可以被隐式的提升为int:false变为0,true变为1。 例如: bool found = false; int occurrence_count = 0; while (/*... 阅读全文
posted @ 2010-02-15 17:27 Jane.T 阅读(799) 评论(0) 推荐(0)

摘要:引用(reference)有时候也称作别名(alias),它可以用作对象的另一个名字。通过引用我们可以间接地操纵对象,使用方式类似于指针,但是不需要指针的语法。 在实际程序中,引用主要被用作函数的形式参数--通常将类对象传递给一个函数。 引用必须被初始化。 语法:int ival = 1024;// ok: refVal 是一个指向ival的引用int &refVal = ival;引... 阅读全文
posted @ 2010-02-11 17:38 Jane.T 阅读(242) 评论(0) 推荐(0)

摘要:================================== 常量 ================================== 为了防止程序员因不小心的错误而修改掉某个变量的值,我们可以给这类型的变量加上const限定修饰符。 它把一个对象转换成了一个常量(constant)。这样在程序中任何改变这个值的企图都将导致编译错误。因此它被称为是只读的。 语法:const int b... 阅读全文
posted @ 2010-02-11 16:33 Jane.T 阅读(261) 评论(0) 推荐(0)

摘要:C++提供了两种字符串的表示。 C风格字符串 ============================= 字符串被存储在一个字符数组中,一般通过一个char*类型的指针来操纵它。所以一般看到一个char*类型的指针,那就是C风格的字符串。该char*类型的指针指向的就是是该字符数组的第一个元素。 如const char *st = "The expense of spirit\n"; 如果... 阅读全文
posted @ 2010-02-11 14:40 Jane.T 阅读(707) 评论(0) 推荐(0)

摘要:vector是向量类型,它是一种对象实体,具有值,所以可以看作是变量。 它可以容纳许多其他类型的相同实体,如若干个整数,所以称其为容器。 vector类与一般的Array类的区别在于: 1. vector支持“向现有的数组元素赋值”的概念以及“插入额外元素”的概念--即vector数组可以在运行时动态增长。 2. 代表了更加广泛的应用。它只提供了最小集的操作(如等于、小于操作符, size(... 阅读全文
posted @ 2010-02-10 14:12 Jane.T 阅读(1659) 评论(0) 推荐(1)

摘要:为了解决名字重复的问题,C++提供了命名空间机制,它允许我们封装名字,以免这些名字与全局名字空间或其他名字空间中定义的名字重复(pollute the global namespace)。 名字空间并不改变其中各种声明的意义,只是改变了它们的可视性。 即使我们在程序中包含了C++库头文件头文件中声明的组件, 它们在我们的文本文件中也不是自动可见的。 还必须加上相应的名字空间。 格式 =======... 阅读全文
posted @ 2010-02-10 11:22 Jane.T 阅读(358) 评论(0) 推荐(0)

摘要:C++的异常处理机制为“响应运行时刻的程序异常”提供了一个标准的语言级设施。它支持统一的语法和风格,也允许程序员进行微调。 异常处理按需要在程序中显式的测试程序异常状态,从而可以将测试异常状态的代码抽取出来,放入指定的、显式标记的代码块中(try, catch)。 异常处理机制的主要构成 ============================================== 1. 程序中异... 阅读全文
posted @ 2010-02-09 17:41 Jane.T 阅读(272) 评论(0) 推荐(0)

摘要:概念 ============================= C++的模板机制能够将类或函数定义的内部类型和值参数化。这些参数在其他方面不变的代码中充当占位符的角色,在使用的时候,这些参数会被绑定到实际类型上。这就是C++的泛型设计(generic paradigm )。 格式 ============================== C++关键字template用来声明一批参数化的类(... 阅读全文
posted @ 2010-02-09 12:12 Jane.T 阅读(316) 评论(0) 推荐(0)

摘要:设置成员访问级别 =================== protected :在类的保护区域内的数据成员和成员函数不提供给一般的程序只提供给派生类。 Private : 放在基类的私有区域内的成员只能供该类自己使用,派生类不能使用。 非公有的成员到底应该声明为protected还是private类成员是新的设计准则。如果希望防止派生类直接访问某个成员,就可以设计为基类的private成员。如果确... 阅读全文
posted @ 2010-02-08 17:05 Jane.T 阅读(255) 评论(0) 推荐(0)

摘要:====================== 函数重载(function overloading) ====================== 函数重载允许两个或更多个函数使用同一个名字,限制的条件是他们的参数表必须不同:参数类型不同或参数数目不同. 重载函数在运行时刻的行为与非重载函数完全一样,主要的负担是在编译时刻用来决定该调用哪个实例所需要的时间。 如果C++不提供函数重载支持,那么我们就... 阅读全文
posted @ 2010-02-08 14:59 Jane.T 阅读(472) 评论(0) 推荐(0)

摘要:========================= 显式的内联函数 ============================= 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。 下面我们来看一个例子: #include <iostream> #include <string> using names... 阅读全文
posted @ 2010-02-08 14:25 Jane.T 阅读(224) 评论(0) 推荐(0)

1 2 下一页