Welcome 微信登录

首页 / 软件开发 / C++

如何让一个打开的文档成为活动文档

如何让一个打开的文档成为活动文档

如何让一个打开的文档成为活动文档2010-05-25提出问题:有一个树型控件,在其TVITEM的用户部分存储着一个文档指针。当双击项目时,我想从打开的文档列表中激活文档。所以对于给定的文档类(CDocument)指针,如何在MDI应用中激活这个指针?在回答这个问题之前需要纠正的是:文档是不能被激活的,只有窗口能被激活。在提出的问题中隐含着这样一种假设,就是每一个文档只有一个视,MDI子框架与这个视关联。因此要激活文档也就是盯住几个指针。从文档可以获得它的视...
用Visual C++制作微秒级精度定时器

用Visual C++制作微秒级精度定时器

用Visual C++制作微秒级精度定时器2010-05-25在工业生产控制系统中,有许多需要定时完成的操作,如:定时显示当前时间,定时刷新屏幕上的进度条,上位机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的控制系统和数据采集系统中,就更需要精确定时操作。众所周知,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列中的消...
C++类模板的三种特化

C++类模板的三种特化

C++类模板的三种特化2011-06-02说起C++的模板及模板特化,相信很多人都很熟悉,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了模板特化的几种类型,一是特化为绝对类型;而是特化为引用,指针类型;三是特化为另外一个模板类。这里用一个简单的例子来说明这三种情况:// general versiontemplate<class T>class Compare{public:static bool IsEqual(const ...
基于流模式长连接的简单实现

基于流模式长连接的简单实现

基于流模式长连接的简单实现2011-06-02 csdn博客 基于流模式的长连接我们可以做很多事情,比方说在局域网内,我们建立这种模式,可以时时传输数据,而不用每次传输数据是创建socket,传输完后,关闭socket。可以减少创建销毁socket的时间。基于流模式的下,数据一直在发送,我们需要知道,每次发送数据量,所以常见的方式时,我们在发送数据时,指定此次发送数据的长度,服务器读取流数据时,先读取数据长度,然后再按长度读取此次发送的数据。我使用sele...
利用VC++编写Windows95的CPL组件

利用VC++编写Windows95的CPL组件

利用VC++编写Windows95的CPL组件2010-05-27控制面板是Windows 95 的控制中心,通过它可以完成添加新硬件设备、改变桌面设置、配置网络协议等多项工作。在Windows 95 中,控制面板通常有20 多个组件,我们只要用鼠标双击任一组件的图标,就会弹出一个对话框,对话框包含有设置一些系统参数的选项,这些参数的绝大多数都存放在Windows 95 的注册表中。---- 控制面板的主程序是CONTROL.EXE,它在启动时自动Winn...
MFC DLL向导(一)

MFC DLL向导(一)

MFC DLL向导(一)2010-05-27虽然能用DLL实现的东西都可以用COM来实现,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL每个DLL都有某种类型的接口:变量、指针、函...
MFC DLL向导(二)

MFC DLL向导(二)

MFC DLL向导(二)2010-05-27使用DLL的一个比较严重的问题就是编译器之间的兼容性问题。不同的编译器对c++函数在二进制级别的实现方式是不同的。所以对基于C++的DLL,如果编译器不同就有很麻烦的。如果创建的是MFC扩展DLL,就不会存在问题,因为它只能被动态连接到MFC的客户应用程序。这里不是本文讨论的重点。一、重新编译问题我们先来看一个在实际中可能遇到的问题:比如现在建立好了一个DLL导出了CMyClass类,客户也能正常使用这个DLL,...
C/C++误区三:强制转换 malloc() 的返回值

C/C++误区三:强制转换 malloc() 的返回值

C/C++误区三:强制转换 malloc() 的返回值2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss首先要说的是,使用 malloc 函数,请包含 stdlib.h(C++ 中是 cstdlib) ,而不是 malloc.h .因为 malloc.h 从来没有在 C 或者 C++ 标准中出现过! 因此并非所有编译器都有 malloc.h 这个头文件。但是所有的 C 编译器都应该 有 stdlib.h 这个头文件。在 C++ 中,强制...
用VC++控制多光驱

用VC++控制多光驱

用VC++控制多光驱2010-05-27对于初学者,编写CD播放器不妨为一种入门的捷径。CD播放器的核心在于MCI命令,而在各种媒体上介绍MCI命令如何使用的文章比比皆是,因此我暂且对其略过不谈。在这儿,我着重向大家介绍一个比较重要的技术--多光驱的支持。人们的机器上的光驱往往不止一个,有普通的CDROM、有CDR、有DVD,还有穷人使用的虚拟光驱:)。这样一来,对于编写多媒体软件的程序员就出了个难题:如何能在软件中加入多光驱的支持。要解决这个问题,首先要...
C/C++误区四:char c = getchar();

C/C++误区四:char c = getchar();

C/C++误区四:char c = getchar();2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返 回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返 回值类型都是 int 型,当这些函数读取出错或者读完文件后,会返回 EOF.EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 E...
C/C++误区五:检查 new 的返回值

C/C++误区五:检查 new 的返回值

C/C++误区五:检查 new 的返回值2011-06-04 蚂蚁的 C/C++ 标准编程 antigloss首先澄清一下,这个误区仅对 C++ 成立,这里不过是沿用“C/C++ 误区”这个衔头罢了。我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用...
使用Windows钩子获取丢失的密码

使用Windows钩子获取丢失的密码

使用Windows钩子获取丢失的密码2010-05-27 vckbase Brian Friesen简介几年前我在CodeGuru 上下载了一个叫 Eureka的程序,如果你忘记了密码,你可以用程序把密码“取”回来。它不是密码破解程序,相反,它利用了一个Windows的安全漏洞来拷贝另外一个运行中的程序的密码。我对这个程序很感兴趣,决定写一个自己的版本。后来,Windows 2000 发布,我失望地发现,微软修补了那个漏洞,这样一来...
<< 251 252 253 254 255 256 257 258 259 260 >>