内容列表
- 修改BOOST(一)
-
修改BOOST(一)
boost是个不错的库。可是也不算太成熟。例如,boost的处理TLS是通过boost_threadmon.dll,使用了TLS的代码必须带一个动态链接库;其次库也不能自动安装,也不能根据你的程序选择了什么样的链接方式(如MT,MD)选择库,如果每次编写一个小型的测试程序都要设置很多东西,恐怕太费力气了;
- 分类:编程语言 查阅全文
- 修改BOOST(二)
-
修改BOOST(二)
boost提供的thread_specific_ptr用起来很简便。但是TLS的可用索引数量是有限的。特别是在的DLL中,如果第一个进程加载的DLL模块用去了n个索引,第二个进程加载相同模块时可用索引就减少n个,Windows下可用的索引也就一千个左右(我没有去查资料,只是凭记忆写的,如果有错误,可以在下面的讨论中指出,不过大概是这个意思)。
- 分类:编程语言 查阅全文
- 如何给工具栏添加背景
-
ÈçºÎ¸ø¹¤¾ßÀ¸Ìí¼Ó±³¾°
£ £ ±¾ÎĽéÉ
- 分类:编程语言 查阅全文
- C++编程思想笔记之一
- 第1章 对象的演化
一、多态性的解释: 当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。
- 分类:编程语言 查阅全文
- C++编程思想笔记之二
- 第3章 隐藏实现一、C++的存取控制
public 意味着在其后声明的所有成员对所有的人都可以存取。public成员就如同一般的struct成员。private关键字则意味着,除了该类型的创建者和类的内部成员函数之外,任何人都不能存取这些成员。private在设计者与用户之间筑起了一道墙。如果有人试图存取一个私有成员,就会产生一个编译错误。protected与priva
- 分类:编程语言 查阅全文
- C++编程思想笔记之三
- 第7章 常量
一、值替代:用C 语言进行程序设计时,预处理器可以不受限制地建立宏并用它来替代值。因为预处理器只做文本替代,它既没有类型检查思想,也没有类型检查工具,所以预处理器的值替代会产生一些微小的问题,这些问题在C + +中可通过使用const而避免。C + +中的const 默认为内部连接,也就是说,const 仅在const 被定义过的文件里才是可见的,而在连接时
- 分类:编程语言 查阅全文
- C++编程思想笔记之五
- 第10章 引用和拷贝构造函数
一、使用引用时有一定的规则:1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指针则可以在任何时候指向另一个对象。)3) 不可能有N U L L 引用。必须确保引用是和一块合法的存储单元关连。
二、参数传递准则
当给函数传递参数时,人们
- 分类:编程语言 查阅全文
- C++编程思想笔记之六
- 第13章 继承和组合
一、继承和组合
组合:简单地创建一个包含已存在的类对象的新类,这称为组合,因为这个新类是由已存在类的对象组合的。对于新类的public接口函数,包含对嵌入对象的使用,但不必模仿这个嵌入对象的接口。
继承:创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。
二、构造函数和析构函数的次序
构造在类层次的最根处开始,而在每一
- 分类:编程语言 查阅全文
- C++编程思想笔记之四
- 第09章 命名控制
一、来自C 语言中的静态成员
在C 和C + +中,static都有两种基本的含义,并且这两种含义经常是互相有冲突的:1) 在固定的地址上分配,也就是说对象是在一个特殊的静态数据区上创建的,而不是每次函数调用时在堆栈上产生的。这也是静态存储的概念。2) 对一个特定的编译单位来说是本地的(就像我们在后面将要看到的,这在C++中包括类的范围)。这里static控制名
- 分类:编程语言 查阅全文
- C++中如何使类不能继承
-
如何使类不能被继承
如果大家熟悉java的话应该知道java中有一种类不能被继承,那就是final类.这种类有很多用处,尤其是在大的项目中控制类的继承层次. 使子类数量不至于爆炸.在使用了多继承的类层次中这也是防止出现菱形继承层次结构的一个好办法. 要实现一个不能被继承的类有很多方法.
主要的思路就是使子类不能构造父类的部分,这样子类就没有办法实例化整个子类.这样就限制了子类的继承. 所
- 分类:编程语言 查阅全文
- 乾坤大挪移--将for bcb5的组件移植到bcb6中
- 乾坤大挪移--将for bcb5的组件移植到bcb6中 大家都知道bcb6已经出来一段时间了,在稳定性和易用性方面有了很大的提高。尤其是网络方面的功能,如对webserver,snap等都提供了很方便的开发方式。许多朋友也许早就跃跃欲试,可有一个很重要的原因阻止了他们对bcb6的使用,那就是
- 分类:编程语言 查阅全文
- 从C++的Return Value Optimization (RVO)到C#的value type
-
从C++的Return Value Optimization (RVO)到C#的value type
先看一段简单的C++代码:
Type get(int I){
return Type(i)
- 分类:编程语言 查阅全文
- BCB日常使用小集锦
- BCB日常使用小集锦
如有疑问,请联系 [email protected]
以下为我的日常笔记,整理出来,供大家分享。
1、BCB 编辑快捷键
左/右移 块代码
选中 块代码 1 CTRL+ SHIFT+ I 是整片往右移,2 CTRL+ SHIFT+ U 是整片文字往左移
2、得到执行程序的当前路径
E
- 分类:编程语言 查阅全文
- 如何在标题栏上添加自己的按钮
-
如何在标题栏上添加自己的按钮
Windows 的窗口似乎总是一成不变的,标题栏也是那个老样子。如果用过 ReadBook 的人可能会注意到,在它的标题栏上多出来了两个按钮:全屏、缩小到托盘。跟最小化、最大化、关闭按钮排列在一起,而且功能也相近,让人觉得它们本来就应该是在那的。下面介绍实现原理和细节。图示为示例程序的运行效果,例子
原理
标题栏上的按钮并不是
- 分类:编程语言 查阅全文
- 怎样实现可扩展/收缩的对话框
-
怎样实现可扩展/收缩的对话框
在软件的界面设计上,简洁、高效永远是追求的目标。可扩展/收缩的对话框能有效的利用屏幕空间资源,展开后能提供较多的设置选项,收拢后又能节省屏幕空间资源,免除一些次要选项对操作的干扰。下面介绍实现原理和细节。图示分别为收拢后和展开后的界面,例子
原理
设计对话框时是完整的(也就是展开后)大小,当对话框初始化时我们只显示一部分,
- 分类:编程语言 查阅全文
- STL 之 Introducntion
- STL, is a C++ library of container classes, algorithms, and iterators; almost every component in the STL is a template.
Containers and algorithms
The STL includes the classes vector, li
- 分类:编程语言 查阅全文
- STL 之 Container Concepts
- Container: 描述:存放各种元素,每个Container必须要有相应的Iterator,元素的存放顺序不定。也许每次Iterator遍历Container的时候,每次的访问顺序都可能不一样,而且Container不能保证在同一时刻有超过一个Iterator有效。Container自己拥有包含的元素(如果是指针Container,那么就仅仅是对指针游泳所有权,而不是指
- 分类:编程语言 查阅全文
- NetMeeting高级应用
- 一、电子白板
电子白板可以用来观看图形和绘画写字,非常有用。
观看图形:如果你想把一张“全家福“给正在交谈的对方看,可以用扫描仪扫描了,然后把它贴到电子白板上去,对方就可以看到了,十分方便,当然你也可以将你公司的产品 资料贴到电子白板给客户看。
绘画写字:可以弥补用麦克风谈话的不足。
在电子白板排列画面:
白板可以同时开启很多个图形,并做成很多页式的图画簿。以随时
- 分类:编程语言 查阅全文
- 用程序取得CPU信息
- 很 多 软 件 可 以 判 断 所 运 行 的 电 脑 类 型 而 自 动 做 不同 的 处 理。 如PhotoShop 5 可 以 探 测CPU 是 否 有MMX 支 持 而 调 用 不同 的 处 理 函 数,《 金 山 词 霸》 发 现 有MMX 支 持 会 产 生 半 透 明的 &n
- 分类:编程语言 查阅全文
- (c++的对话)Solmyr 的小品文系列之三:对象计数(上)
- 作者:Solmyr From: pchome.net
台下的座位已经坐满了,除了 Solmyr 的位子。zero 手足无措的望着那唯一的空位,开始第一百次的哀叹为什么自己会落到这样一个尴尬的位置。仅仅几分钟前,一切都还很正常,直到 ………… ………… 主持人:“下一个议程,题为‘对象计数’的 C++ 编程技术讲座,主讲人是zero。” zero: “什 …
- 分类:编程语言 查阅全文