- 博客(141)
- 资源 (11)
- 收藏
- 关注
转载 SetupDiGetClassDevs
函数定义HDEVINFOSetupDiGetClassDevs(const GUID* ClassGuid, PCTSTR Enumerator, HWND hwndParent,DWORD Flags);输入参数:PGUIDClassGuid在创建设备列表的时候提供一个指向GUID的指针。如果设定了标志DIGCF_ALLCLASSES,则这个参数可以忽
2013-03-07 06:56:01
1977
转载 itoa
原 型char *itoa( int value, char *string,int radix);原型说明:value:欲转换的数据。string:目标字符串的地址。radix:转换后的进制数,可以是10进制、16进制等。把一个整数转换为字符串用 法itoa(i,num,10);i ----需要转换成字符串的数字num---- 转换后保存字符串的变量10-
2013-03-06 18:05:57
2782
转载 指针基础
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int
2013-03-03 08:57:51
440
转载 回顾指针
一、回顾指针概念早在本书第贰篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做“指向另一指针地址”的指针。让我们先回顾一下指针的概念吧!当我们程序如下声明变量: short int i; char a; short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示:图中所示中可看出: i 变量在内存地址5的
2013-03-02 18:14:23
372
转载 指向指针的指针
指向指针的指针到底是什么 指针是一种抽象,在计算机中指地址编号,当然你可以把生活中的任何东西进行精心有用的抽象,一个指针在计算机中就相当于地址编号+其对这个地址编号的解释方式。指针变量呢就是1个代号,通过这个代号可以取得指针的这么一个东西,为什么会有变量产生,主要是为了避免程序员直接和地址打交到而产生的变量。指针变量也是变量占内存的,所以指针变量就会它的地址,既然有地址,那么这个地址就可以给
2013-03-02 17:57:55
467
转载 PE文件结构体总汇
PE文件结构体总汇①:IMAGE_DOS_HEADER STRUCT 【M_DOS头部 共64字节】{ +00 h WORD e_magic // DOS可执行文件标记 MZ(4Dh 5Ah) +02 h WORD e_cblp ; Bytes on last page of file +04 h WORD e_cp ; Pages in file
2013-02-26 18:45:11
736
转载 PE文件详解九:资源结构体
PE文件详解九:资源结构体Windows 将程序的各种界面定义为资源,包括加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog Box)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version Information)等。资源有很多种类型,每种类型的资源中可能存在
2013-02-26 18:44:12
1207
转载 PE文件详解八:IMAGE_BASE_RELOCATION STRUC基址重定
PE文件详解八:IMAGE_BASE_RELOCATION STRUC基址重定什么是基址重定位?答:重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你霸占,你必须转移到别的地址,这就需要基址重定位但凡涉及到直接寻址的指令都需要进行重定位处理!IMAGE_BASE_RELOCATION STRUC 【基址重定位位于数据目录
2013-02-26 18:41:51
4557
转载 PE文件详解七:IMAGE_EXPORT_DIRECTORY STRUCT导出表
PE文件详解七:IMAGE_EXPORT_DIRECTORY STRUCT导出表当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一并装入地址空间,再根据DLL 文件中的函数导出信息对被执行文件的IAT 进行修正。导出表就是记载着动态链接库的一些导出信息。通过导出表,DLL 文件可
2013-02-26 18:41:11
3863
转载 PE文件详解六:PE详解之输入表(导入表)详解2
PE文件详解六:PE详解之输入表(导入表)详解2输入表结构 在 PE文件头的 IMAGE_OPTIONAL_HEADER 结构中的 DataDirectory(数据目录表) 的第二个成员就是指向输入表的。而输入表是以一个 IMAGE_IMPORT_DESCRIPTOR(简称IID) 的数组开始。每个被 PE文件链接进来的 DLL文件都分别对应一个 IID数组结构。
2013-02-26 18:40:36
794
转载 PE文件详解五:PE详解之输入表(导入表)详解1
PE文件详解五:PE详解之输入表(导入表)详解1首先,我们知道PE 文件中的数据被载入内存后根据不同页面属性被划分成很多区块(节),并有区块表(节表)的数据来描述这些区块。这里我们需要注意的问题是:一个区块中的数 据仅仅只是由于属性相同而放在一起,并不一定是同一种用途的内容。例如输入表、输出表等就有可能和只读常量一起被放在同一个区块中,因为他们的属性都是可 读不可写的。
2013-02-26 18:39:38
671
转载 PE文件详解四:PE详解之区块描述、对齐值以及RVA详解
PE文件详解四:PE详解之区块描述、对齐值以及RVA详解通常,区块中的数据在逻辑上是关联的。PE 文件一般至少都会有两个区块:一个是代码块,另一个是数据块。每一个区块都需要有一个截然不同的名字,这个名字主要是用来表达区块的用途。例如有一个区块 叫.rdata,表明他是一个只读区块。注意:区块在映像中是按起始地址(RVA)来排列的,而不是按字母表顺序。另外,使用区块名字只是人
2013-02-26 18:39:05
987
转载 PE文件:节表(区块表)
节表(区块表):PE文件中所有节的属性都被定义在节表中,节表由一系列的IMAGE_SECTION_HEADER结构排列而成,每个结构用来描述一个节,结构的排列顺序和它们描述的节在文件中的排列顺序是一致的。全部有效结构的最后以一个空的IMAGE_SECTION_HEADER结构作为结束,所以节表中总的IMAGE_SECTION_HEADER结构数量等于节的数量加一。节表总是被存放在紧接在PE文件
2013-02-26 18:38:09
5538
转载 MAGE_NT_HEADERS STRUCT结构
MAGE_NT_HEADERS STRUCT结构体包含了两个子结构体typedef struct _IMAGE_NT_HEADERS { +00h DWORD Signature +04h IMAGE_FILE_HEADER FileHeader +18h IMAGE_OPTIONAL_HEADER32 OptionalHeader } IMAGE_NT_HEADERS
2013-02-26 18:37:05
890
转载 IMAGE_DOS_HEADER
IMAGE_DOS_HEADER STRUCT { +00h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +02h WORD e_cblp // Bytes on last page of file +04h WORD e_cp // Pages in file +06h WORD e_crlc //
2013-02-26 18:34:05
1565
转载 AfxRegisterWndClass
AfxRegisterWndClass使您可以注册您的窗口类。 LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle,HCURSOR hCursor = 0,HBRUSH hbrBackground = 0,HICON hIcon = 0 );函数参数nClassStyle:指定样式的窗口类样式或组合,创建
2013-02-22 18:09:22
613
转载 TLS--线程局部存储
概念:线程局部存储(Thread Local Storage,TLS)用来将数据与一个正在执行的指定线程关联起来。进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保;多个线程访问共享数据,需要昂
2013-02-18 10:33:30
323
原创 CWnd::PostNcDestroy
virtual void PostNcDestroy( );参数: 在窗口被销毁以后,缺省的OnNcDestroy成员函数调用这个函数。派生类可以利用这个函数来执行自定义的清除工作,比如删除指针。 虚函数PostNcDestroy 在视图窗口关闭时最后调用的成员函数,它与CFrameWnd::PostNcDestroy完成相同的功能,即删除视图对象。代
2013-02-16 17:51:50
496
原创 MFC BEGIN_MESSAGE_MAP()
1BEGIN_MESSAGE_MAP(CpassApp, CWinApp)2 ON_COMMAND(ID_HELP, CWinApp::OnHelp)3END_MESSAGE_MAP()这些都是宏定义,不是函数。 在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加你的消息响应函数,为每个消息处理函数加入一个入口 BE
2013-02-16 17:46:48
428
转载 CFileDialog构造函数
CFileDialog构造函数view sourceprint?1CFileDialog:CFileDialog(BOOL bOpenFileDialog,2LPCTSTR lpszDefExt=NULL,3LPCTSTR lpszFileN
2013-02-07 14:30:43
429
转载 将数据写入到CListCtrl
将数据写入到CListCtrl 向CListCtrl中写入数据,一般使用3个成员方法: CListCtrl::InsertColumn; CListCtrl::InsertItem; CListCtrl::SetItemText; InsertColumn被用于向显示列表中插入显示的列,例如: list.InsertColumn(0,"主项",LVCFMT_L
2013-02-05 19:56:05
517
转载 FormatMessage
FormatMessage功能就是将GetLastError得到的错误信息(这个错误信息是数字代号)转化成字符串信息的函数FormatMessage()函数FormatMessage声明如下:DWORD WINAPI FormatMessage(__in DWORD dwFlags,__in_opt LPCVOID lpSource,__in DWO
2013-01-23 20:18:08
372
转载 CTreeCtrl
CTreeCtrl目录简介详细资料控件应用示例CTreeCtrl的用法展开简介详细资料控件应用示例CTreeCtrl的用法展开编辑本段简介树控制(CTreeCtrl)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的
2013-01-13 10:12:19
630
转载 OnCtlColor
OnCtlColor是控件窗口函数,其画刷句柄效果提示信息函数( afx_msg HBRUSH OnCtlColor )构成:返回值,OnCtlColor必须返回一个刷子句柄,该刷子将被用于画出控件的背景。参数,pDC 包含了子窗口的显示设备环境的指针。可能是临时的。PWnd 包含了要求颜色的控件的指针。可能是临时的。 NCtlColor 包含了下列值,指定了控件的类型: CTLCOLOR
2012-12-07 15:47:56
596
转载 bind()函数
bind()函数#include #incude int bind( SOCKET s, const struct sockaddr FAR *name, int namelen );(1)这个函数接收三个参数。第一个参数s指定要绑定的套接字,第二个参数指定了该套接字的本地地址信息,是指向sockaddr结构的指针变量,由于该地址结构是为所有的地址家族准备的
2012-11-17 07:17:37
542
原创 sizeof new delete
( sizeof pstr )/(sizeof pstr[0])表达式( sizeof pstr )/(sizeof pstr[0])将整个指针数组占用的字节数量除以数组中第一个元素占用的字节 数量。因为该数组中各个元素占用相同数量的内存。所以结果是数组元素的数量。 pstr是一个指针数组,对该数组或单个元素使用sizeof操作符不能 获得任何文本字符串的内在占用情况。pstr[0
2012-09-16 19:41:51
342
转载 DuplicateHandle
DuplicateHandle()复制句柄函数的用法很多像我一样的菜鸟起初都不知道DuplicateHandle()的用法和为何要使用DuplicateHandle()函数,现在我在这里总结一下:BOOL WINAPI DuplicateHandle( __in HANDLE hSourceProcessHandle, __in HANDLE
2012-09-08 20:25:04
689
翻译 ZeroMemory
介绍 ZeroMemory,是美国微软公司的软件开发包SDK中的一个宏。 其作用是用0来填充一块内存区域。编辑本段用法声明 void ZeroMemory( PVOID Destination,SIZE_T Length );参数 Destination :指向一块准备用0来填充的内存区域的开始地址。 Length :准备用0来填充的内存区域的大小,按字
2012-09-08 20:10:23
797
转载 SECURITY_ATTRIBUTES
typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; //结构体大小,可用sizeof取得 LPVOID lpSecurityDescriptor; //指向一个对象的安全描述符 该安全描述符控制对象的共享 如果为NULL 则该对象使用调用进程的默认安全描述符 BOOL bInheritHandle;//
2012-09-08 20:08:12
1214
转载 argc与argv
在编程中我们经常遇到这个参数,于此我收集了一些资料做下比较:main( int argc, char ** argv )argv: 指针的指针argc: 整数char **argv or char *argv[] or char argv[][]为了能形象的说明这两个参数的含义,我们先用一个实例来进行讲解:假设程序的名称为test,当只输入test,则由操作系统传来的参数为
2012-08-19 21:30:31
374
转载 VC 注册表操作
VC 注册表操作近来由于需要在自己写的程序中对注册表进行操作。总结些经验,并做个一个DEMO供日后使用,现在把它拿出来和大家分享…… 小弟初学VC,有误之处还请赐教。为了使用方便,我把一些操作写成了函数,以便方便调用,具体代码如下所示:一、定义 HKEY hKey;char content[256]; //所查询注册表键值的内容D
2012-08-16 15:36:39
2249
转载 windows编程中文件操作
windows编程中文件操作有以下几种常见方法:1.C语言中文件操作。2.C++语言中的文件操作。3.Win32 API函数文件操作。4.MFC CFile类文件操作。5.MFC CFileDialog类的文件操作。6.注册表文件操作。下面我来详细说明一下各种文件操作方法:1. C语言中文件操作.需要包含的头文件STDIO.HC++代码?[Cop
2012-08-16 15:34:28
641
转载 CString LPCTSTR BSTR
一、定义1、CString:动态的TCHAR数组。它是一个完全独立的类,封装了+等操作符和字符串操作方法。2、BSTR:专有格式的字符串(需要使用系统函数来操纵)。定义为:typedef OLECHAR FAR* BSTR3、LPCTSTR:常量的TCHAR指针。定义为:typedef const char* LPCTSTR二、要点1、char*:指向ANSI字符数组的指针,其
2012-08-16 08:45:20
481
转载 一个ListCtrl的详细实现
四、实践学习:一个ListCtrl的详细实现1.切换到第一个对话框点击ListCtrl控件2.在属性窗口,改变View属性为Report3.创建ListCtrl的列,在OnInitDialog()中添加代码如下: BOOL CDeptStore2Dlg::OnInitDialog(){ CDialog::OnInitDialog(); //
2012-08-15 17:22:42
559
转载 MFC控件——ListCtrl控件[翻译]
MFC控件——ListCtrl控件[翻译]声明:1、本文为翻译文章,水平有限,错误之处,烦请指正(chinajiezhang@gmail.com)。2、使用VS2005,所以在某些细节上和原作者不太一样3、工程中使用图片和作者略有不同4、文章如有争议,以原作者文章为准5、转载请标明出处原文链接:http://www.functionx.com/visualc/c
2012-08-15 17:21:43
472
转载 LIST VIEW 和LVITEM用法
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第
2012-08-15 17:01:21
320
转载 全面解读WM_NOTIFY NMHDR结构
全面解读WM_NOTIFY NMHDR结构 收藏 VC中的消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件
2012-08-15 16:59:33
367
转载 NMHDR
NMHDR = Notify Message Handler[cpp] view plaincopytypedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } NMHDR; 消
2012-08-15 16:54:33
715
转载 LVCOLUMN和LVITEM
列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。图1 列表视图的4种显示方式列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每
2012-08-15 16:53:13
508
转载 文件系统API函数
文件系统的基本概念:包括磁盘分区,卷,目录,文件对象,文件句柄,文件映射1.磁盘分区:物理磁盘,逻辑磁盘2.卷:也称逻辑驱动器,是NTFS,FAT32等文件系统组织结构的最高层.卷是存储设备(硬盘)上由文件系统管理的一块区域,在逻辑上相互隔离的存储单元.windows命名规则:主文件名+扩展名windows中文件系统的长度被限制为260个字符.这260个字符
2012-08-15 10:29:08
497
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人