Windows编程
文章平均质量分 64
ArduousBonze
C/C++、Python/Perl/Shell、UNIX/LINUX、Oracle/Mysql/DB2
展开
-
钩子编程技巧
钩子概述 钩子(Hook)是Windows消息处理机制的一个要点(Point)。应用程序可以通过钩子机制截获处理Window消息或是其他一些特定事件。同DOS中断截获处理机制类似,应用程序可以在钩子上设置多个钩子函数,由其组成一个与钩子相关联的指向钩子函数的指针列表(钩子链表)。当钩子所监视的消息出现时,Windows首先将其送到调用链表中所指向的第一个钩子函数中,钩子函数将根据其各自的功能转载 2007-06-25 14:54:00 · 1075 阅读 · 1 评论 -
共享内存
在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模式。 每个进程都有独立的4GB逻辑地址空间,32位的Windows系统允许每一个进程独立访问自己的内存,即独立于其它进程,也即它自己的32位逻辑地址空间。操作系统将把每一个进程的逻辑地址转换成实转载 2008-06-23 08:57:00 · 722 阅读 · 0 评论 -
VC++下命名管道编程的原理及实现
概述 管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器, 连接到一个管道的进程为管道客户机。命名管道(Named Pipes)是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一种命名的管道。一个命名管道的所有实例共享同一个管道名,但是每一个实例均 拥有独立的缓存与句柄,并且为客户——服务通信提供有一个分离的管道。实例的使用保证了多个管道客户能够转载 2008-06-23 09:29:00 · 851 阅读 · 0 评论 -
VC++环境下利用管道和线程实现进程间通信
一. 引 言 ---- Windows95 作 为 一 个 优 先 多 任 务 操 作 系 统, 其 重 要 特 征 之 一 是 引 入 了 多 进 程 和 多 线 程 机 制。 其 中 每 个 进 程 都 有 私 有 的 虚 拟 地 址 空 间, 可 以 创 建 多 个 线 程, 每 个 线 程 被 分 配 一 个 时 间 片, 且 当 前 执 行 的 线 程 在 其 时 间 片 耗 尽转载 2008-06-23 09:32:00 · 1856 阅读 · 1 评论 -
Windows系列操作系统对线程间通信的支持 ——管道与邮路
Windows应用程序间数据通讯的基本方式有四种。最简单的是利用剪切板;另一种是DDE(Dynamic Data Exchange动态数据交换),它利用一种公共的协议实现两个或多个应用程序之间的通讯;再者是通过内存映射文件,内存映射可以将一个进程的一段虚拟地址映射为一个文件,然后其它的进程可以共享该段虚拟地址;最后就是通过管道与邮路实现进程间数据通信。要讨论管道与邮路之前先让我们来复习一下转载 2008-06-23 09:33:00 · 1310 阅读 · 0 评论 -
跨域访问命名管道
跨域访问命名管道 文档版本 版本 创建时间 创建人 备注转载 2008-06-23 09:35:00 · 3534 阅读 · 0 评论 -
Windows管道技术简述
不知你是否用过这样的程序,他们 本身并没有解压缩的功能,而是调用DOS程序PKZIP完成ZIP包的解压缩。但是在程序运行时又没有DOS控制台的窗口出现而且一切本应该在DOS下显 示的信息都出现在了那个安装程序的一个文本框里。这种设计既美观又可以防止少数眼疾手快的用户提前关了你的DOS窗口。现在就来讨论一下,如何用匿名管道技术实现这个功能。管道技术由来已久,相信不少人对DOS命令里的管道转载 2008-06-23 09:37:00 · 752 阅读 · 0 评论 -
Softice使用指南---使用Softice
安装并配置好Softice后,我们就可以开始进入使用Softice的阶段了,如果你没有做好前面的工作,还是先返回去将Softice准备好,学软件要一边看一边学习效果才好。Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的转载 2008-10-17 09:32:00 · 2409 阅读 · 0 评论 -
用WinInet开发Internet客户端应用指南
一、概述 一个Internet客户端程序的目的是通过Internet协议如:HTTP、FTP等来存取网络数据源(服务器)的信息。客户端程序可以访问服务器获得象天气预报,股票价格、重要新闻数据,甚至是与服务器交换信息。Internet客户端程序可以通过外部网络(Internet)或内部网络(一般为Intranet)访问服务器。 为了开发Internet转载 2008-09-27 14:46:00 · 1099 阅读 · 0 评论 -
Visual Studio .NET,SQL Server 2000,Server Explorer
Matt Mannion 和 Jon RauschenbergerClarity Consulting Inc. 2002 年 3 月 适用于: Microsoft? SQL Server? 2000 Microsoft Visual Studio? .NET摘要:如何使用 Visual Studio .NET 工具创建数据库对象和 Transact-SQL转载 2008-10-06 16:31:00 · 3020 阅读 · 1 评论 -
Excel ODBC CListCtrl
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 pt 0 2转载 2008-10-24 17:08:00 · 1177 阅读 · 0 评论 -
共享内存实现进程间大数据的交换
引言 进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成,通常一个程序设计人员只负责其中一个或 几个模块的开发,这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独立开发出来的程序模块最终需要作为一个整体来运行,即组成一个 系统,在系统运行期间这些模块往往需要频繁地进行数据交换和数据共享,对于动态链接库同其主调应用程转载 2008-06-23 08:55:00 · 710 阅读 · 0 评论 -
网络游戏中的数据包设计和定义(初论)
接触了一段时间的网游封包设计,有了一些初步的思路,想借这篇文章总结一下,同时也作个记录,以利于以后更新自己的思路。 网络游戏的技术研发,分为三个主要的方面:服务器设计,客户端设计,数据库设计。而在服务器和客户端之间实现游戏逻辑的中介则是游戏数据包,服务器和客户端通过交换游戏数据包并根据分析得到的数据包来驱动游戏逻辑。网络游戏的实质是互动,而互动的控制则由服务器和客户端协同完成,协同就必转载 2008-08-29 16:43:00 · 725 阅读 · 0 评论 -
How to make a resizable dialog bar in Microsoft Foundation Classes (MFC)
How to make a resizable dialog bar in Microsoft Foundation Classes (MFC)View products that this article applies to.function loadTOCNode(){}Article ID:143255Last Review:November 21, 2006Revision:5.1Th转载 2008-08-04 13:51:00 · 1126 阅读 · 0 评论 -
CB中的文件操作
C++BUILDER的文件操作在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/原创 2007-05-15 15:53:00 · 4140 阅读 · 0 评论 -
无标题栏窗口拖动的实现
普通的Windows应用程序窗口都具有统一的窗口风格,它们一般都包括:用户区和非用户区两部分。非用户区包括标题条、窗口边框、最大化按钮、最小化按钮、关闭按钮和系统默认的快捷键及鼠标支持等。利用鼠标的左键通过拖动窗口的标题条可以在屏幕上任意移动整个窗口,当光标停止在窗口边框上时可以改变窗口的大小。在一些比较经典的软件中,有一类特殊的无标题条的窗口。这种窗口不需要改变窗口的大小,但必须具有窗口客户区域原创 2007-05-15 00:06:00 · 3605 阅读 · 1 评论 -
多条件匹配的精简写法
项目中遇到根据多条件匹配在LiseView中显示满足条件的项目,想了下条件匹配做了这样的处理: bool __fastcall TMainForm::FitCondition(String shipname,String shiptype,String regorg,CDynObject * pObj) { int paracount=0,fitcount=0; if(shipna原创 2007-05-15 08:46:00 · 1444 阅读 · 0 评论 -
动态链接库的开发
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被原创 2007-05-15 15:57:00 · 1373 阅读 · 0 评论 -
获取系统时间
Windows API:void GetSystemTime(LPSYSTEMTIME lpSystemTime); CB:Now();DateTimeToStr(Now());Now()=Date()+Time();TDateTime myDataTime; myDataTime.CurrentDate();//返回当前日期 myDateTime.CurrentTime();原创 2007-05-16 20:23:00 · 1006 阅读 · 0 评论 -
VC中改变窗口标题的方法
1.取消MDI主框架窗口中显示的活动文档标题 缺省条件下,创建的主框架窗口和MDI子窗口通常具有FWS_ADDTOTITLE风格,所以如果要禁止, 必须取消该风格: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CMDIFrameWnd::PreCreateW原创 2007-05-19 21:27:00 · 7096 阅读 · 0 评论 -
MFC全局函数和“生死因果”
全局函数:“生死因果”:原创 2007-05-19 21:50:00 · 1134 阅读 · 0 评论 -
异或运算、与运算、或运算在设计复选框中的应用
异或运算、与运算、或运算在设计复选框中的应用三者的性质异或运算:相同为0,不同为1与运算:两者为1时为1,有0为0或运算:有1为1定义如下宏:(观察其特点)#define FLAG_DUPLICATE 0x01 //展开二进制00000001 #define FLAG_VISIBLE 0x02 //展开二进制00000010 #define FLAG_CANS原创 2007-05-21 12:22:00 · 2218 阅读 · 0 评论 -
共享内存例子
// SharedMemory.h: interface for the CSharedMemory class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_SHAREDMEMORY_H__86467BA6_5AFA_11D3_863转载 2008-07-13 13:15:00 · 1388 阅读 · 1 评论 -
有关“字节序”的描述
BIG-ENDIAN(大字节序、高字节序)LITTLE-ENDIAN(小字节序、低字节序)主机字节序网络字节顺序JAVA字节序1.BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响。BIG-ENDIAN就是低位字节排放在内存的低端,高位字节排放在内存的高端。而LITTLE-END转载 2008-07-17 22:00:00 · 1145 阅读 · 1 评论 -
Active X介绍
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Fon转载 2008-07-25 08:59:00 · 3474 阅读 · 0 评论 -
SQL Server dbo
数据库所有者 (dbo)dbo 是具有在数据库中执行所有活动的暗示性权限的用户。将固定服务器角色 sysadmin 的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。例如,如果用户 Andrew 是固定服务器角色 sysadmin 的成员,并创建表 T1,则表 T1 属于 dbo,转载 2008-10-16 09:58:00 · 1825 阅读 · 0 评论