Welcome 微信登录

首页 / 软件开发 / C++

Windows 2000驱动程序的设计

Windows 2000驱动程序的设计

Windows 2000驱动程序的设计2010-12-30本文介绍了Windows 2000 WDM驱动程序结构及其编写的注意事项,最后给出了一个简单的WDM驱动程序及客户端程序的源码,希望能对大家有所帮助。1. 简介:Windows 2000原名Windows NT 5.0是继Windows NT 4.0的新一代操作系统,它不但继承了Windows NT 4.0的种种优点,而且在技术上又有了许多的突破,其中一项就是对驱动程序结构的变化,即引入了全新的WD...
WINDOWS 2000下如何获得用户登录名和密码

WINDOWS 2000下如何获得用户登录名和密码

WINDOWS 2000下如何获得用户登录名和密码2010-12-30moonstone一、原理在NT/2000中交互式的登陆支持是由WinLogon调用GINA DLL实现的,GINA DLL提供了一个交互式的界面为用户登陆提供认证请求。WinLogon会和GINA DLL进行交互,缺省是MSGINA.DLL(在System32目录下)。微软同时也为我们提供了接口,我们可以自己编写GINA DLL来代替MSGINA.DLL。WinLogon初始化时会创建...
I/O端口读写的实现

I/O端口读写的实现

I/O端口读写的实现2009-10-14细心的读者会发现,C++ Builder不再支持如inportb()、outportb()一类I/O端口读写指令了。准确地说,在Windows环境下,Borland C++仅支持16位应用程序的端口操作,对32位应用程序的端口操作不再支持,而C++ Builder开发出来的程序是32位的。我个人以为,这是C++ Builder设计者的败笔。因为PC机中,I/O地址空间与内存地址空间从来都是各自独立的。看看Delphi...
Windows下的高精度计时和高频事件的产生

Windows下的高精度计时和高频事件的产生

Windows下的高精度计时和高频事件的产生2010-12-30戎亚新在开发 Windows 下的应用程序时,经常需要用的计时,尤其在一些对时间要求比较高的程序中,计时的精确性是很重要的,本文介绍了两种精确计时的方法,计时的精度可以达到ms级,而且可以认为它是精确的,可以在大多数情况下作为时间的基准。用API函数::timeGetTime()获取从开机到现在经过的ms数,它的返回类型为DWORD类型,因此它的最大计时长度为2^32ms,约等于49天,::t...
C++中随机存取文件的处理

C++中随机存取文件的处理

C++中随机存取文件的处理2009-10-14 IT专家网 vivian和许多的C++程序一样,有些人更喜欢用原先的C语言方式处理问题,如果你恰好也是这些人中的一员,就应该学习一下这篇文章。基本的文件操作有◆fopen——打开文件,指定文件以怎样的方式打开(读/写)以及类型(二进制/文本)◆fclose——关闭已经打开的文件◆fread——读取文件◆fwrite—&mdas...
WMI(Windows管理规范)的一个实现

WMI(Windows管理规范)的一个实现

WMI(Windows管理规范)的一个实现2010-12-30Abbey介绍这是我在继上一篇文章"My Explorer"之后关于Windows Management Instrumentation(Windows管理规范)的又一新作。我将向你展示一些技巧,让你可以在远程地访问网络中其他计算机的操作系统、服务、当前运行着的进程等等信息,当然前提是你必须得拥有这些计算机的管理员权限。同时我也将向你展示如何利用WMI来启动或者停止服务、终止...
BCB中实现动态创建组件

BCB中实现动态创建组件

BCB中实现动态创建组件2009-10-22栈(stack)是存放函数的所有动态局部变量及函数调用和返回的有关信息的一块内存。栈的内存管理严格遵循先进后出的顺序,这一点正是实现函数调用所需要的。从栈中分配内存效率特别高。数据对象使用栈中的内存(如动态局部变量)比使用堆中内存会使程序运行更快。堆(heap)是供malloc()、calloc()、realloc()和new等函数获取内存空间的一块内存。从堆中获取内存比从栈中要慢得多,但堆的内存管理却比栈灵活得...
XP下关于快速切换用户功能的相关编程

XP下关于快速切换用户功能的相关编程

XP下关于快速切换用户功能的相关编程2010-12-30不知道大家注意到没有,Windows XP新增加了一个快速切换用户的功能。它可以让您在不注销的情况下在用户之间进行切换,而且每个用户有自己独立的配置文件和桌面。也就是说当您切换到另外一个用户(即用另外一个账号登陆)时,以前的那个用户运行的所有程序都还是在运行的,并没有退出来。这就给我们的开发带来了新的问题。比如您的应用程序提供的功能在多个用户同时运行时发生错误,您必须为应用程序添加代码以检测该情形并作...
初识WTL(上)

初识WTL(上)

初识WTL(上)2010-12-30orange代码运行效果图如下:1.前言虽然MFC的功能很强大,但Windows Template Library(WTL)的出现,无疑说明了MFC有一定的弊病。和MFC相比,功能并没有MFC完善。比如MFC支持doc/view架构,而WTL并不支持。同时,WTL也没有Microsoft的官方支持。但是,WTL是基于模版(template)的,其应用程序最小只有24KB,同时不象MFC,依赖DLL。但是WTL也实现了CS...
C++ boost正则表达式用法

C++ boost正则表达式用法

C++ boost正则表达式用法2009-10-22 cnblogs 吴碧宇什么是正则表达式?正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express.如果您不知道什么是正则表达式,请看这篇文章:深入浅出之正则表达式有了正则表达式的基础,问题是如何使用。我们以boost::regex来说先看一个网上经典的例子。 #include "stdafx.h"#include <cstdlib>#inc...
程序只运行一个实例,并激活前一个实例

程序只运行一个实例,并激活前一个实例

程序只运行一个实例,并激活前一个实例2010-12-30耿海增示例代码运行效果图如下:实现程序只运行一次的方法很多,但是原理都是一样的,就是运行第一次的时候设置一个标记,每次运行的时候检查该标记,如果有就说明已经运行了。具体实现:1、在程序初始化的时候 (InitInstance()) 枚举所有的窗口,查找本程序的实例是否存在2、在主窗口初始化的时候在本窗口的属性列表中添加一个标记,以便程序查找.部分关键代码1、在App的InitInstance()中枚举...
C++:从栈和堆来理解C#中的值类型和引用类型

C++:从栈和堆来理解C#中的值类型和引用类型

C++:从栈和堆来理解C#中的值类型和引用类型2009-10-22 cnblogs 陈希章C++中并没有值类型和引用类型之说,标准变量或者自定义对象的存取默认是没有区别的。但如果深入地来看,就要了解C++中,管理数据的两大内存区域:栈和堆。栈(stack)是类似于一个先进后出的抽屉。它的体积是有限的,一般为2M左右。而堆(heap)则相对来说体积可以很大,这一般跟计算机的虚拟内存设置有关系。栈中存取对象的内存是自动回收的,用完即销毁了,一般方法内部的变量和...
用纯粹的C++编写COM组件

用纯粹的C++编写COM组件

用纯粹的C++编写COM组件2010-12-30 vckbase 本文提供一个完全用C++实现的进程内(DLL)COM服务器,不要ATL或MFC提供任何支持。用这种方式编写COM对象可以让你深入地洞察到COM处理进程内服务器的方法以及COM是如何创建类工厂的。利用本文提供的这个简单框架你可以实现很基本的COM组件,如外壳扩展(Shell Extensions)等。如果你在使用过程中发现了任何问题,请将它反馈到vckbase@public.hk.hi.cn。...
C++ Builder2006控件的安装方法

C++ Builder2006控件的安装方法

C++ Builder2006控件的安装方法2009-10-26 c++ builder研究 PPower一、安装步骤:1、拿到源码,要全部源码,不要那种只有部分源码的包。2、找到BPK文件,如果只有DPK文件,那就用DPK2BPK程序(网上下载)生成一个BPK文件,如果生成失败,那就自己新建一个包(BPK或bdsproj),把DPK文件中包含的pas文件包含进去。3、编译与安装。二、注意事项:1、Bpl包的重名问题,主要是不能重名,在Borland 与 ...
在网页中调用VC写的对话框

在网页中调用VC写的对话框

在网页中调用VC写的对话框2011-01-07freedk要想在网页中调用VC写的对话框,那就得创建一个OCX了,下面将一步一步教你怎么写OCX:第一步选择"MFC ActiveX ControlWizard",写入创建工程的名字,然后一路狂按"NEXT",直到"Finish",至此一个简单的MFC型的OCX框架已完成了;第二步在资源中添加一对话框,并创建一个对话框的新类;第三步就得为OCX添加方...
<< 81 82 83 84 85 86 87 88 89 90 >>