C++
文章平均质量分 77
梦断酒醒
诚实、沉实
展开
-
查找指定类型的驱动器
最近正在写一个程序,其中有一个需求是程序运行时,必须要将特定的光盘放在光驱之中,因此需要枚举当前系统中所有的光驱并逐一识别是否是符合要求的光盘。 通过系统函数GetLogicalDriveStrings与GetDriveType要以完成上述需求,简述如下。 1.函数GetLogicalDriveStrings 其原型如下:原创 2009-02-19 20:36:00 · 1453 阅读 · 0 评论 -
在C++结构体中使用静态成员(二)
C++中的类可以利用构造函数作一些初始化的操作,也可以利用析构函数作一些清理的操作。而事实上C++中的结构体与类是极为相似的,它也支持构造函数和析构函数,所以可以考虑为结构体添加构造函数与析构函数,在构造函数中将节点计数加1而在析构函数中节点计数减1。这样就不需要在产生节点时将计数器加1在删除节点时将计数器减1,在使用这种结构体产生节点时只需要考虑申请结点空间和删除节点就可以了,而不必再顾及原创 2009-05-08 22:26:00 · 5954 阅读 · 1 评论 -
在C++结构体中使用静态数据成员(一)
在编程时用到了一个结构体,而该结构体类型的实例还需要连成一个单向链表,并且需要知道在该链表中包含有多少个节点。很容易想到可以使用STL中的队列之类的集合做到这一点,不过由于不是什么正经项目中要用的代码,所以就考虑能否在结构体中声明一个静态变量实现对节点的计数功能,因此有了如下代码。 #include using namespace std; /* 结构体定义 */原创 2009-05-07 21:38:00 · 4658 阅读 · 1 评论 -
c++智能指针的创建
zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。“呃,没什么,只是 …… Solm转载 2009-09-08 20:45:00 · 3209 阅读 · 4 评论 -
多线程中生成随机数序列重复问题的解决方法
使用过随机数的程序员都知道在程序中并不能够实现的真正的完全的随机数函数。随机数函数产生的是通过公式计算出来的一系列伪随机数,这个公式会采用一个种子数计算出一个数,而该数将成为产生下一个数的种子数。基于产生随机数的原理,两次调用随机数后产生的随机数序列将是一样的,显然,这不是我们的期望的结果。为了解决上述问题,使得随机数函数产生的数尽量随机,编程语言通常提供了设定种子数的功能,而一般情况下原创 2009-09-25 11:59:00 · 9256 阅读 · 8 评论 -
C++中实现无符号右移
在Java及JavaScript中提供了无符号右移操作符“>>>”,无符号右移操作符与普通右移操作符“>>”的区别是>>在右移时将以符号扩展原则进行右移,即在右移过程中它将保持原有数据的正负号不变,简单地说,就是在右移正数时高位补0、右移负数时则高位补1,而无符号右移操作符>>>在右移时不考虑符号问题,即无论右移正数还是负数,其最高位都是补0。无符号右移本质上是将被右移的数所有存储位都视原创 2009-11-10 22:57:00 · 11326 阅读 · 14 评论 -
利用CImage完成图片的显示、拷贝、绘制及转换图片格式
近日一个利用VC编写的程序需要在界面上显示图片,经过查阅资料利用CImage方得实现。将相关技术点整理如下,以供以后参考。一、 图片的载入如果需要在界面上显示的是已经存在的图片,那么需要将待显示的图片载入至CImage对象之中,CImage提供了四个载入函数: HRESULT Load(LPCTSTR pszFileName) throw( );原创 2009-11-20 11:04:00 · 12443 阅读 · 6 评论 -
任务栏隐藏的实质
众所周知,Windows的任务栏可以设定成自动隐藏,这样任务栏将只在需要的时候显示出来,而其它时间则隐藏起来,通常这样做可以为我们提供更大一点的工作空间。那么任务栏的隐藏是如何实现的呢?是否与我们通常情况隐藏窗口时采用不显示窗口的手法一致呢?其实之所以提出以上问题,是由于在尝试识别当前任务栏状态的时候碰到了问题。按照通常的想法,如果想要识别任务栏是否处于显示状态,可以通过FindWi原创 2009-12-29 21:17:00 · 3518 阅读 · 12 评论