E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《windows核心编程》
《
Windows核心编程
》---终止处理程序
结构化异常处理(SEH)包含两方面的功能:终止处理和异常处理。终止处理程序确保不管一个代码块是如何退出的,另一个代码块总能被调用和执行。终止处理的语法如下:__try{ //guardedbodyofcode(被保护代码) }__finally{ //__finallyblock(终止处理代码) }操作系统和编译器的协同工作保证了不管被保护代码部分是如何退出的---无论是在保护代码中使用r
ACE1985
·
2010-07-04 14:00
编程
windows
exception
Microsoft
null
编译器
《
Windows核心编程
》---图形用户界面之窗口
图形用户界面之---窗口:主函数一般是:/**************************************************************************WinMain*功能:程序入口点,调用InitApplication,InitInstance,进行消息循环*参数:hinstance---应用程序本次运行实例* hPrevInstance-
ACE1985
·
2010-06-28 09:00
编程
windows
command
null
图形
winapi
《
Windows核心编程
》---图形用户界面之窗口
图形用户界面之---窗口: 主函数一般是: /************************************************************************* * WinMain * 功能:程序入口点,调用InitApplication,InitInstance,进行消息循环 * 参数:hinstance---应用程序本次运行实例 * hPrevIns
wapysun
·
2010-06-28 09:00
windows
《
Windows核心编程
》---数据复制消息WM_COPYDATA
WM_COPYDATA是一个非常特殊的消息,此消息可能携带一个比较大的消息参数,而其他消息都只能携带两个固定大小的参数(WPARAM和LPARAM)。 WM_COPYDATA的两个参数如下:wParam//发送或传递这个消息的窗口lParam //指向包含要发送的数据的COPYDATASTRUCT结构的指针 在发送WM_COPYDATA消息时,WM_COPYDATA的wParam参数应该赋值为
ACE1985
·
2010-06-26 16:00
《
Windows核心编程
》---数据复制消息WM_COPYDATA
WM_COPYDATA是一个非常特殊的消息,此消息可能携带一个比较大的消息参数,而其他消息都只能携带两个固定大小的参数(WPARAM和LPARAM)。 WM_COPYDATA的两个参数如下: wParam //发送或传递这个消息的窗口 lParam //指向包含要发送的数据的COPYDATASTRUCT结构的指针 在发送WM_COPYDATA消息时,WM_COPYDATA的wPar
wapysun
·
2010-06-26 16:00
windows
《
Windows核心编程
》---剪贴板
剪贴板是由系统定义的,并不属于任何一个特定的进程。系统中所有进程都可以访问和设置剪贴板。剪贴板最大的特点就是数据传输没有明确的目标,数据是被动访问的;剪贴板的内容可以被多次访问,直到新的数据写入。剪贴板是一种可供选择的进程间通信方式,但由于系统中任何一个进程都可以都可以无限制地访问剪贴板,因此,它是一种不可靠的通信方式。1)获取和设置剪贴板数据涉及到的API有:OpenClipboard、Empt
ACE1985
·
2010-06-26 15:00
编程
windows
null
menu
initialization
winapi
《
Windows核心编程
》---剪贴板
剪贴板是由系统定义的,并不属于任何一个特定的进程。系统中所有进程都可以访问和设置剪贴板。剪贴板最大的特点就是数据传输没有明确的目标,数据是被动访问的;剪贴板的内容可以被多次访问,直到新的数据写入。剪贴板是一种可供选择的进程间通信方式,但由于系统中任何一个进程都可以都可以无限制地访问剪贴板,因此,它是一种不可靠的通信方式。 1)获取和设置剪贴板数据 涉及到的API有:OpenClipboard、
wapysun
·
2010-06-26 15:00
windows
《
Windows核心编程
》---邮槽通信
邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠UDP数据传输协议。使用邮槽通信的进程分为客户端和服务端,邮槽由服务端创建,创建后,客户端可以通过邮槽名打开邮槽,在获得邮槽句柄后可以向邮槽写入消息。邮槽通信是单向的,只有服务端能从邮槽中读取消息,而客户端只能写入消息。消息是先进先出的。通过邮槽通信的数据可以是任意格式的,但为了保证邮槽在各种Windows平台下都能够正常工作,邮槽通信一条消息
ACE1985
·
2010-06-25 15:00
编程
windows
Security
null
attributes
winapi
《
Windows核心编程
》---邮槽通信
邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠UDP数据传输协议。使用邮槽通信的进程分为客户端和服务端,邮槽由服务端创建,创建后,客户端可以通过邮槽名打开邮槽,在获得邮槽句柄后可以向邮槽写入消息。邮槽通信是单向的,只有服务端能从邮槽中读取消息,而客户端只能写入消息。消息是先进先出的。 通过邮槽通信的数据可以是任意格式的,但为了保证邮槽在各种Windows平台下都能够正常工作,邮槽通信一条
wapysun
·
2010-06-25 15:00
windows
《
Windows核心编程
》---文件操作
Windows提供了一类API来读、写和管理磁盘文件。 使用API函数读写文件时,首先要使用CreateFile函数创建文件对象,调用成功会返回文件句柄。我们以此句柄为参数调用ReadFile和WriteFile函数,进行实际的读写操作;最后调用CloseHandle函数关闭不再使用的文件对象句柄。 1)打开和关闭文件: CreateFile是一个功能强大的函数,Windows下的底层设
wapysun
·
2010-06-14 15:00
windows
《
Windows核心编程
》---文件操作
Windows提供了一类API来读、写和管理磁盘文件。使用API函数读写文件时,首先要使用CreateFile函数创建文件对象,调用成功会返回文件句柄。我们以此句柄为参数调用ReadFile和WriteFile函数,进行实际的读写操作;最后调用CloseHandle函数关闭不再使用的文件对象句柄。 1)打开和关闭文件:CreateFile是一个功能强大的函数,Windows下的底层设备几乎都由它打
ACE1985
·
2010-06-14 15:00
编程
windows
File
null
attributes
磁盘
《
Windows核心编程
》---Windows服务
Windows服务(Services),是一些运行在WindowsNT、Windows2000和WindowsXP等操作系统下用户环境以外的程序。它不同于一般的可执行程序,不需要系统登录便可以运行,以完成某些特定的功能。服务提供了管理能力,可以将后台程序转换成服务,然后就可以用命令或者在系统启动用户登录之前启动,并且也可以暂停、恢复和终止。服务信息在注册表中维护。为了能够在系统中正确运行,在创建一
ACE1985
·
2010-06-10 10:00
编程
windows
数据库
service
null
winapi
《
Windows核心编程
》---Windows服务
Windows服务(Services),是一些运行在WindowsNT、Windows2000和Windows XP等操作系统下用户环境以外的程序。它不同于一般的可执行程序,不需要系统登录便可以运行,以完成某些特定的功能。服务提供了管理能力,可以将后台程序转换成服务,然后就可以用命令或者在系统启动用户登录之前启动,并且也可以暂停、恢复和终止。服务信息在注册表中维护。 为了能够在系统中正确运行,在
wapysun
·
2010-06-10 10:00
windows
《
Windows核心编程
》---内核对象和进程基础
80386处理器有3种工作模式:实模式、保护模式和虚拟86模式。其中,实模式和虚拟86模式是为了和8086处理器兼容而设置的,保护模式是80386处理器的主要工作模式。Windows操作系统运行在此模式下,保护主要是对存储器的保护。80386对多任务操作系统的支持主要体现在两方面:一是在硬件上为任务之间的切换提供良好的条件;二是它实现了多任务隔离。多任务隔离技术可以使每个任务都有独立的地址空间,就
ACE1985
·
2010-06-08 20:00
数据结构
编程
windows
null
任务
attributes
《
Windows核心编程
》---内核对象和进程基础
80386处理器有3种工作模式:实模式、保护模式和虚拟86模式。其中,实模式和虚拟86模式是为了和8086处理器兼容而设置的,保护模式是80386处理器的主要工作模式。Windows操作系统运行在此模式下,保护主要是对存储器的保护。 80386对多任务操作系统的支持主要体现在两方面:一是在硬件上为任务之间的切换提供良好的条件;二是它实现了多任务隔离。多任务隔离技术可以使每个任务都有独立的地址空间
wapysun
·
2010-06-08 20:00
windows
《
Windows核心编程
》---ADO基础
传统的ODBC技术只能访问关系型数据库,且访问速度慢,因此,微软推出了OLEDB(应用在数据库上的对象连接于嵌入)和ADO(ActiveXdataObject),OLEDB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,大大提高了访问速度。同时,OLEDB和ADO不仅可以访问关系型数据库,还可以访问非关系型数据库。 ADO建立在OLEDB之上,ADO是一个DLED
ACE1985
·
2010-06-07 16:00
编程
windows
数据库
command
null
Parameters
《
Windows核心编程
》---ADO基础
传统的ODBC技术只能访问关系型数据库,且访问速度慢,因此,微软推出了OLE DB(应用在数据库上的对象连接于嵌入)和ADO(ActiveX data Object),OLE DB和ADO都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,大大提高了访问速度。同时,OLE DB和ADO不仅可以访问关系型数据库,还可以访问非关系型数据库。 ADO建立在OLE DB之上,A
wapysun
·
2010-06-07 16:00
windows
《
Windows核心编程
》---内存映射文件基础
与虚拟内存相似,内存映射文件保留了一个地址空间区域,在需要时将它提交到物理存储器。它们的不同点是内存映射文件提交到物理存储器的数据来自磁盘上相应的文件,而不是系统页文件。 使用内存映射文件的目的有3个: 1)系统使用内存映射文件来加载和执行.EXE和.DLL文件。这极大地节省了系统页文件空间,也缩短了启动应用程序所需的时间; 2)使用内存映射文件访问磁盘上的数据。这既避免了对文件执行文件
wapysun
·
2010-06-06 16:00
windows
《
Windows核心编程
》---内存映射文件基础
与虚拟内存相似,内存映射文件保留了一个地址空间区域,在需要时将它提交到物理存储器。它们的不同点是内存映射文件提交到物理存储器的数据来自磁盘上相应的文件,而不是系统页文件。 使用内存映射文件的目的有3个:1)系统使用内存映射文件来加载和执行.EXE和.DLL文件。这极大地节省了系统页文件空间,也缩短了启动应用程序所需的时间;2)使用内存映射文件访问磁盘上的数据。这既避免了对文件执行文件IO操作,也避
ACE1985
·
2010-06-06 16:00
《
Windows核心编程
》---检测PE文件有效性
PE文件是Windows系统中任何可执行模块或者DLL的文件格式。PE即Portable Executable,它是Win32环境自身所带的执行文件格式。PE文件是跨Win32平台的,也就是说即使是运行在非intel CPU上的Windows都能够被PE转载器识别和使用该文件格式。 PE文件以64字节的DOS文件头(IMAGE_DOS_HEADER结构)开始,之后是一小段DOS程序,然后是248
wapysun
·
2010-06-06 10:00
windows
《
Windows核心编程
》---CAPIHook类
封装CAPIHook类:(某本书的笔记) 1)HOOK所有模块 HOOK一个进程对某个API的调用时,不仅要修改主模块的导入表,还必须遍历此进程的所有模块,替换掉每个对目标API的调用: void CAPIHook::ReplaceIATEntryInOneMod(LPSTR pszExportMod, PROC pfnCurrent, PROC pfnNew, HMODULE h
wapysun
·
2010-06-03 21:00
windows
《
Windows核心编程
》---HOOK API基础
HOOK API是指截获特定进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。最常用的一种挂钩API的方法是改变目标进程中调用API函数的代码,使得它们对API的调用变为对用户自定义函数的调用。 Windows下应用程序有自己的地址空间,它们只能调用自己地址空间中的函数;因此,在挂钩API之前,必须将一个可以代替API执行的函数的执行代码注入到目标进程,接着将目标进程对该AP
wapysun
·
2010-06-03 19:00
windows
《
Windows核心编程
》---动态链接库和钩子基础
动态链接库是应用程序的一个模块,这个模块用于导出一些函数和数据以供其他程序中的其他模块调用: 1)动态链接库是应用程序的一部分,是作为模块被进程加载到自己的空间地址中; 2)动态链接库在程序编译时并不会被插入到可执行文件中,在程序运行时这个库的代码才会调入内存,即“动态链接”; 3)若有多个程序用到同一个动态链接库,Windows在物理内存中只保留一份库的代码,仅通过分页机制将这份代码映射到
wapysun
·
2010-06-01 16:00
windows
Jeffrey Richter是一位在全球享有盛誉的技术作家
之后,他又推出了经典著作《Windows 高级编程指南》和《
Windows核心编程
》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的
k_lb
·
2010-05-29 21:00
技术
Windows核心编程
学习笔记之二(进程)
Windows核心编程
学习笔记之二(进程)5.进程:(1)在Win32系统中每一个进程都拥有4GB的地址空间。
aurain
·
2010-05-21 14:00
Windows核心编程
学习笔记一(内核对象)
Windows核心编程
学习笔记一(内核对象)1.windows95上部分Win32实际上不可用,如:CreateRemoteThread函数,在Windows95上调用该函数时返回结果是NULL。
aurain
·
2010-05-21 14:00
WINDOWS核心编程
——进程
看完了内核对象,现在看进程。都知道进程是通过内核对象被操作系统管理的。它由内核对象和地址空间组成。 下面看看CreateProcess函数:创建进程。需要说明的是,在进程完全初始化之前该函数就会返回true。 这意味着操作系统j加载程序尚未进行定位所有所必要的dll。如果某个dll找不到或者未能正确初始化,进程就会终止。因为CreateProcess返回TRUE,所以父进程不会注
andyjackson
·
2010-05-18 02:00
数据结构
编程
windows
UI
Security
WINDOWS核心编程
——内核对象(续)
上篇讲到通过DuplicateHandle共享内核对象的用法。下面先讲讲DuplicateHandle另一种用法: 假设一个进程对一个文件映射对象拥有读写权限。在程序的某个位置,调用一个函数,并希望它对文件只有读权限。应该使用DuplicateHandle为现有的对象创建一个新的只有读权限的句柄。然后把这个句柄传给该函数,而不是用原来的句柄。 int WINAPI_tWinMain(HINS
andyjackson
·
2010-05-16 17:00
编程
windows
dos
多线程编程中非常有用的提示和技巧
本文摘抄自《
windows核心编程
》非常有用的提示和技巧当使用关键代码段时,有些很好的方法可以使用,而有些方法则应该避免。下面是在使用关键代码段时对你有所帮助的一些提示和技巧。
xiaoqiangxx
·
2010-05-05 14:00
多线程
数据结构
编程
c
winapi
WINDOWS核心编程
——内核对象
今天想把看的第三章的心得写下来。 这章主要介绍了内核对象。在WINDOWS中,内核对象是由操作系统来管理,尽管用户能够创建它,但是在创建之后,用户对该内核对象的操作都是委托给操作系统。 通常用户创建和使用的对象分为:用户对象(如 HICON CreateIcon(prama))、GDI对象函数以及内核对象。像访问令牌、事件对象、文件对象、文件映像对象、进程对象、信号量等都属于内核对象。在内核对
andyjackson
·
2010-05-04 08:00
编程
windows
Security
Access
WINDOWS核心编程
——字符串处理
ANSI和UNICODE作为目前最流行的字符编码格式,C标准库和WINDOWS提供安全和一般的字符串函数一般都有针对它们的版本,但是目前WINDOWS趋向不在提供ANSI的版本。 使用时需要遵守的准则: 将文本字符串想象为字符数组,而不是CHAR或者字节数组。 用明确的数据类型(BYTE和PBYTE)来表示字节、字节指针和数据缓冲区。 用TEXT或_T宏表示字面量
andyjackson
·
2010-05-03 22:00
编程
C++
c
windows
C#
WINDOWS核心编程
——错误处理
windows常见的函数返回值类型: VOID: 一般用于那些极少数的不可能失败的函数。 BOOL:如果函数失败,返回0;否则,返回一个非0的值;因此检查时,最好是检验返回值是否为FALSE而不是TRUE。 HANDLE:如果函数失败,返回NULL或者INVALID_HANDLE_VVALUE的句柄值,它被定义为-1;成功,HANDLE将标志一个可操纵的句
andyjackson
·
2010-05-02 16:00
thread
编程
windows
windows消息参考大全(vc 去掉水平滚动条)
下是windows消息队列中会出现的所有的消息,在学习win32asm或者
windows核心编程
、winsocket或者VC/VC++的其它的windows程序的时候会很有帮助的。
zeng622peng
·
2010-04-28 21:00
windows
File
command
dropdown
文档
button
如何正确的入门Windows系统下C/C++学习领域
[email protected]
:643439947编程生涯:2001~至今[12年]职业生涯:10年职业岗位:通用软件架构师通用软件技术总监通用软件研发工程师兼职岗位:C/C++初级教学讲师
Windows
我不是代码教父
·
2010-04-27 23:00
C/C++语言
如何正确的入门Windows系统下C/C++学习领域
[email protected]
: 643439947编程生涯:2001~至今[12年]职业生涯:10年职业岗位:通用软件架构师通用软件技术总监通用软件研发工程师兼职岗位:C/C++初级教学讲师
Windows
Code_GodFather
·
2010-04-27 23:00
windows
搜索引擎
语言
开发工具
Delphi
《
Windows核心编程
》の聊聊MIB相关结构
MIB_IPADDRTABLE结构是一张Ipv4地址入口表,其定义如下:typedefstruct_MIB_IPADDRTABLE{DWORDdwNumEntries;//表中Ipv4地址入口的个数MIB_IPADDRROWtable[ANY_SIZE];//一个指向实现为MIB_IPADDRROW结构数组//的Ipv4地址入口表的指针}MIB_IPADDRTABLE,*PMIB_IPADDRTA
wapysun
·
2010-04-23 13:00
windows
《
Windows核心编程
》のWindows返回值
当调用一个Windows函数时,它首先检验传递给它的各个参数的有效性,然后再设法执行任务。如果传递了一个无效参数,或者由于某种原因无法执行这项操作,那么操作系统就会返回一个值,指明该函数在某种程度上运行失败了。 下面说说Windows常见的返回值类型: 1) VOID:表明该函数运行不可能失败,Windows函数的返回值很少是VOID。 2) BOOL:如果函数运行失败,返回值是0,否则
wapysun
·
2010-04-18 22:00
windows
win32错误码和linux的错误码的简单转换
其获得方式可以参考《
windows核心编程
》。 但我们也可以用linux下的api来获得windows下的错误信息,其条件就是把wind
fjb2080
·
2010-04-15 11:00
宽字符与Unicode
——————————————————————————————————宽字符与Unicode学习总结参考书:《Windows程序设计》《
Windows核心编程
》朱铭雷2010.4.2———————————
joyzml
·
2010-04-02 14:00
windows
String
null
语言
character
编译器
CreateProcess要注意的一个问题
今天重看《
windows核心编程
》(第五版)P86页时,才发现CreateProcess的第二个参数pszCommandLine是不能传入”常量字符串”,因为CreateProcess内部是会修改这个参数的
riag
·
2010-03-23 17:00
编程
windows
Delphi - ErrorCode查询
嘿嘿,是的,有msdn呀,当然还可以用FormatMessage函数来.正好看了下
Windows核心编程
第一章有个例子,来用Delphi试一下.主要用了FormatMessage函数,具体用法和注意事项就很多了
·
2010-03-20 00:00
Delphi
unicode字符集,用还是不用?
《
Windows核心编程
》也列出一堆理由劝我们使用unicode字符集,最大的好处当然是软件本地化的需要,另外一些
clever101
·
2010-03-13 23:00
编程
windows
Microsoft
mfc
dll
语言
《
Windows核心编程
》笔记——进程
《
Windows核心编程
》笔记——进程定义:一般定义为正在运行程序的一个实例,由以下两部分组成:一个内核对象,操作系统用它管理进程。一个地址空间,其中包含所有可执行文件或DLL。
jiangxinyu
·
2010-03-05 10:00
编程
windows
工作
null
Path
编译器
COM线程模型-套间(转)
1 进程、线程回顾《
WINDOWS核心编程
》对进程和线程有深入解
shiwei0124
·
2010-03-04 10:00
C++资源2
/study/ Effective C++ 第二版lostmouse翻译 xulion整理PDF格式 大小:401K C++编程思想PDF格式 大小:14M
WINDOWS
joerong666
·
2010-03-02 16:00
编程
C++
c
windows
C#
WINDOWS核心编程
第5版》随笔记录24
条目1、由CPU抛出的异常都是硬件异常,由操作系统和应用程序抛出的异常通常被称为软件异常。(P638) 条目2、异常处理程序的语法结构:(P638)__try{//Guardedbody//..}__except(Exceptionfilter){//Exceptionhandler//..}任何一个try,后面必须跟着finally或except中的任意一个代码块(不能同时拥有)。try-fin
yuzl32
·
2010-03-01 11:00
《
WINDOWS核心编程
第5版》随笔记录23
条目1、促使微软将SEH加入WINDOWS系统的因素之一是它可以简化操作系统本身的开发工作。(P621) 条目2、终止处理的语法(P622)__try{//Guardedbody}__finally{//Terminationhandler}操作系统和编译器协同工作保证不管被保护的代码如何退出(return、goto、longjmp)的,终止处理程序都会被调用。即__finally代码块都能执行。
yuzl32
·
2010-02-27 10:00
《
WINDOWS核心编程
第5版》随笔记录22
条目1、使用注册表来注入DLL。(P575)原理:当User32.dll被映射到一个新的进程时,它的DLL_PROCESS_ATTACH通知会取得注册表HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/Windows/AppInit_DLLs中的DLL列表,逐个加载。这个DLL列表的第一个DLL文件可以包含路径,其他DLL
yuzl32
·
2010-02-24 17:00
《
WINDOWS核心编程
第5版》随笔记录21
条目1、使用线程局部存储区(ThreadLocalStorage)可以讲数据和一个指定的线程关联起来。(P565)条目2、由于早期运行库中的大多数函数设计在单线程的基础上,为保证在多线程的情况下这些函数(特别是使用了静态变量/全局变量的函数)的行为不发生改变,C/C++运行库使用了TLS。(p565) 条目3、TLS技术分为:动态TLS和静态TLS。(P566) 条目4、动态TLS应用的四个函数:
yuzl32
·
2010-02-24 15:00
thread
多线程
编程
windows
null
dll
《
WINDOWS核心编程
第5版》随笔记录20
条目1、有2种方式将DLL的文件映像映射到调用线程所在进程的地址空间:(P524)(1) 直接让应用程序的源代码引用DLL中所包含的符号(查阅:随笔记录19中条目7)(2) 让应用程序在运行过程中通过LoadLibrary(Ex)和GetProcAddress显式地载入所需DLL及其函数地址 条目2、LoadLibrary(Ex)函数会根据“随笔记录19中条目8”中的搜索算法对DLL的文件映像
yuzl32
·
2010-02-22 00:00
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他