蒋晟的专栏

http://jiangsheng.net

IStream接口和CString之间的转换

问:如何传递CString中包含的字符串到具有IStream类型参数的函数?问:如何根据获得的IStream接口指针获得字符串?答:MFC7中的未归档类CStreamOnCString实现了IStream接口访问封装的CString类型的m_strStream成员。如果你没有MFC7,可以用Cre...

2005-01-24 10:09:00

阅读数:5333

评论数:2

何时一个类的指针可以强制转化为另外一个类的指针,即使它们之间没有派生关系?

问:我看到CListView的成员函数GetListCtrl直接把CListView本身的指针转换为CListCtrl指针。我想知道在什么情况下可以安全地把一个类的指针转化为另一个类的指针?答:只要你访问的数据的内存表示是完全相同的,那么这种转化就是安全的。考虑MFC从CWnd到CEdit的派生过...

2005-01-24 09:35:00

阅读数:3973

评论数:2

虚析构函数

编译器总是根据类型来调用类成员函数。但是一个派生类的指针可以安全地转化为一个基类的指针。这样删除一个基类的指针的时候,C++不管这个指针指向一个基类对象还是一个派生类的对象,调用的都是基类的析构函数而不是派生类的。如果你依赖于派生类的析构函数的代码来释放资源,而没有重载析构函数,那么此时会有资源泄...

2005-01-24 09:22:00

阅读数:1826

评论数:0

在Visual C++中编译工程时自动增加版本号

微软知识库中的文章How To Increment Version Information After Each Build in Visual C++(http://support.microsoft.com/kb/237870/)提供了在VC6中自动增加版本号的方法。在VS.Net中,需要对这...

2005-01-23 02:22:00

阅读数:3931

评论数:0

编程控制Modem/PPPoE拨号连接

在Windows中拨号上网(包括MODEM和PPPoe),一般都是用Windows平台提供的的Remote Access Service(RAS,远程访问服务):http://msdn.microsoft.com/library/en-us/rras/rras/ras_start_page.asp...

2005-01-23 01:41:00

阅读数:3097

评论数:0

编程实现远程唤醒PC

为了唤醒网络上的计算机,必须发出一种特殊的数据包,该数据包的格式与普通数据包不同,而且还必须使用相应的专用软件才能产生。当前普遍采用的是AMD公司制作的Magic Packedt这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。该数据包包含有连续6个字节的“FF”和...

2005-01-23 01:16:00

阅读数:2768

评论数:0

限制应用程序的实例数目

某些应用程序处理紧缺资源,例如可擦写光驱、串口或者大量内存,通常不希望这种应用程序的多个实例同时运行。实际上你没有办法限制用户只能启动一次。你可以做到的是在应用程序启动之后查找是否用户启动了另一个实例。如果没有找到现存的实例,应用程序以正常方式启动。否则,通常的处理是退出。要查找现存的实例,可以查...

2005-01-22 13:46:00

阅读数:1961

评论数:1

编程控制活动桌面,用ActiveX控件来增强桌面的功能

活动桌面处理和一个例子 (http://www.vckbase.com/vckbase/vckbase10/vc/nonctrls/atlcomocx_02/1002001.htm)讲述了使用IActiveDesktop接口可以做到的事情。活动桌面允许在桌面上显示HTML网页,这也意味着我们可以在...

2005-01-22 13:33:00

阅读数:2812

评论数:2

提示
确定要删除当前文章?
取消 删除
关闭
关闭