摘要:http://support.microsoft.com/default.aspx/kb/280801
阅读全文
07 2012 档案
摘要:http://www.3987.com/article/soft/2601.html
阅读全文
摘要:位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为多少位,多少位(以32位为例)32位指令集就是运行32位数据的指令,也就是说处理器一次可以运行32bit数据。 那怎么查看呢?1.在开始运行中输入“winver”,如果你的系统是64位的,会明确标示出“x64 Edition”。 2.运行中输入“cmd”,然后在命令提示符窗口中输入“systeminfo”,如果你的系统是64位的,会在 MicrosoftXP Professional一行后明确标示出“x64 Edition”,否则你的系统就是32位的。 在cmd下输入systeminfo,.
阅读全文
摘要:1、CComObject :为独立激活的COM组件提供服务,功能包涵: (1)锁服务器。 (2)正常的引用计数。 (3)正常的QueryInterface。2、CComAggObject :为被聚合激活的COM组件提供服务,功能包涵: (1)锁服务器。 (2)包容接口实际类。 (3)正常的引用计数。 (4)将调用转发给内部包容对象的QueryInterface。(除了IUnknown请求外)3、CComContainedObject :为被聚合海派的COM组件提供服务,功能包涵: (1)将调用转发给外部组件的引用计数。 (2)将调用转发给外部组件的QueryInterface...
阅读全文
摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用ch
阅读全文
摘要:WINDOWSX.H 头文件为W32SDK的程序员提供方便(工具?)很多初中级程序员用C/C++编写Windwos API的程序时,经常面对面条式的switch...case语句块当你在Window过程(回调函数、下称过程)中加入大量诸如WM_COMMAND or WM_CHAR的消息捕获时。真是一场噩梦。关于上千行代码的Window过程的问题,随着 C/C++ 7.0 编译器和Windows SDK for Windows 3.1发行时带的一个头文件而被解决。这个头文件是<windowsx.h> 以及所包含的大量的有用的宏。其实就是对SendMessage的消息分流,方便一些罢了
阅读全文
摘要:vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include <vector>使用vector有两种不同的形式,即所谓的数组习惯和 STL习惯。一、数组习惯用法1. 定义一个已知长度的 vector :vector< int > ivec( 10 ); //类似数组定义int ia[ 10 ]; 可以通过ivec[索引号] 来访问元素使用 if ( ivec.empty() ) 判断是否是空,ivec.size()判断元素个数。2. vecto
阅读全文
摘要:"#ifdef 语句1 程序2 #endif“ 可翻译为:如果宏定义了语句1则程序2。 作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。 代码举例:新建define.cpp文件 #include "iostream.h" int main() { #ifdef DEBUG cout<< "Beginning execution of main()"; #endif return 0; } 运行结果为: Press any key to continue 改写代码如下: #include "iostr
阅读全文
摘要:#undef 是在后面取消以前定义的宏定义 该指令的形式为 #undef 标识符 其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。 一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结束或者使用#undef 指令取消定义。 在此程序中,我们将取消在先前程序中对预处理器的定义。 #include <iostream.h> #include<string.h> #defineMAX 5 #undef MAX void main() { char name[MAX]="abcde"; //只能用abcd,否
阅读全文
摘要:DLL文件(Dynamic Linkable Library 即动态链接库文件),是一种不能单独运行的文件,它允许程序共享执行特殊任务所必需的代码和其他资源比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序 EXE 文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的 EXE 程序时,在每次修改重建时都必须调整
阅读全文
摘要:反汇编工具 IDA Pro 是一个世界顶级的交互式反汇编工具,它的使用者囊括了软件安全专家,军事工业,国家安全信息部门,逆向工程学者,黑客。从功能上它大大胜过了w32dasm。近来它的盗版已经在网上传播开了,你可以很轻松得到它。 IDA PRO 简称IDA ,英文:Interactive Disassembler的缩写。它是由HEX RAY SA 公司开发的,一家多年以来从事二进制代码反编译C的软件安全公司,其公司的旗舰产品就是著名的Hex-Rays.Decompiler(是IDA PRO的插件)。 IDA有两种可用版本。标准版(Standard)支持二十多种处理器。高级版(Advanc...
阅读全文
摘要:在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。 通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行.
阅读全文
摘要:原型:extern char *strupr(char *s); 用法:#include <string.h> 功能:将字符串s转换为大写形式 说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。 举例: // strupr.c #include <syslib.h> #include <string.h> main() { char *s="Copywrite 1999-2000 GGV Technologies"; clrscr(); printf("%s",strupr(s)); getchar()
阅读全文
摘要:此文所有的实验都是基于下面的程序: char str[10]; for (int i = 0; i < 10; i++) str[i] = '!'; 执行完后str的值为 str = "!!!!!!!!!!" 我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比先前的惊叹号,这样就可以方便的观察str发生了怎样的变化。下面我们做几个小实验,看看使用sscanf和正则表达式格式化输入后,str有什么变化。 实验1: sscanf("123456","%s",str);
阅读全文
摘要:编码指不同国家的语言在计算机中的一种存储和解释规范 ANSI与ASCII n最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息 nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacte
阅读全文
摘要:VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。struct tagVARIANT { union { struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; union { LONG lVal; BYTE bVal; SHORT iVal; FLOAT fltVal; DOUBLE dblVal; VARIANT_BOOL boolVal; _VARIANT_BOOL bool; SCODE scode; CY..
阅读全文
摘要:在进行COM编程的时候常常用到VARIANT类型的变量, 其中的字符串分量为bstrVal即双字节的BSTR, 如果需要将其转换为字符串STRING我以前使用强制类型转换:(const char*)bsVal;在看了潘爱民老师的<<COM编程原理>>偶尔发现如下函数(例子摘自MSDN)//compile options needed: /Gr or /Gz#include <comutil.h>int main(){char sz[]="hello";_bstr_t b;b = _com_util::ConvertStringToBSTR
阅读全文
摘要:一、COM组件的目标:COM组件的一个主要优势是:便于升级。要实现这个优势需要满足一下两个条件:1、运行时从客户程序动态加载和卸载,采用DLL技术可以实现。2、为了更好的突出DLL的优势,还需要信息隐藏,即封装性。二、COM组件的信息隐藏采用IUnknown接口来实现: 1、IUnknown接口功能简介:IUnknown意思是未知,即未知的接口。采用这个名字是为了简单起见,所有的COM接口都需要继承IUnknown,因此若某个客户拥有一个IUnknown接口的指针,也就不知道接口到底是什么类型的,只需要知道此接口可以用来查询其他接口。IUnknown接口有一个用来查询接口的函数QueryInt
阅读全文

浙公网安备 33010602011771号