自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

转载 Windows 下的进程间通讯及数据共享

Windows 下有很多方法实现进程间通讯,比如用 socket,管道(Pipe),信箱(Mailslot),等等。但最基本最直接的还是使用内存共享。其他方法最终还是会绕道这里。 可想而知,如果物理内存只有一份,让这份内存在不同的进程中,映射到各自的虚拟地址空间上,每个进程都可以读取同一份数据,是一种最高效的数据交换方法。下面我们就讨论如何实现它。 共享内存在 Windows 中是用 FileMa

2007-01-23 15:11:00 1117

转载 VC 中进程与多进程管理的方法

  进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在进程

2007-01-23 11:05:00 1048

转载 如何获取线程关联用户名和域名

在Windows NT/2000/XP上编写程序时,有时会需要我们获取与当前调用线程关联的用户名和域名(domain),本文下面将示范在Windows NT/2000/XP环境里如何使用Win32 API有关安全的函数来获取用户名和域名。 在Windows NT之前,一般都假设某个线程是运行在登录用户的帐号之下。但Windows NT问世以后,允许线程可以在多个安全上下文中运行,言下之意就是一个线

2007-01-22 14:00:00 1651

转载 剖析Windows任务管理器开发原理与实现

Windows2000/XP内含的任务管理器(Taskmgr)相信大家都熟悉吧,相比之下XP里的要比2000功能更加强大,返回的信息也更加的详细,不过您是否觉得还有很多希望获得的消息没有包含在里面吗?您是否觉得Windows的系统管理工具箱里的东西太分散了吗?下面就让我们看看它们的开发原理,并动手实现一个真正的任务管理器。现在我们是调用Win32API来实现这些功能的,但是大家都说MS隐藏了太多的

2007-01-22 11:31:00 1034

转载 四种方法实现VC枚举系统当前进程

四种方法实现VC枚举系统当前进程 在Windows 2000以上的MS操作系统,通过Windows的任务管理器可以列出当前系统的所有活动进程(如图1所示),在Windows XP中,更是在控制台下增加了一条Tasklist命令,让系统下的所有进程无所遁行(如图2所示)。这一切是怎么实现的呢? 引用侯捷大师在《深入浅出MFC》的一句话,“知其然而不知其所以然,真不是个好办法”。既然如此,我们干脆自己

2007-01-22 11:17:00 1093

转载 关闭计算机就这几招

关闭计算机就这几招 注:完全翻译整理自MSDN。非常简单. Vcbear. “系统ShutDown”属于Windows系统的一种基本服务。功能上有“关闭系统”,“注销用户”,“锁定工作站”3中操作。SDK中提供了几个函数,来对此服务进行调用。 “关闭系统”功能使计算机可以被安全的关闭。所有在文件系统里缓冲的内容都被强制写入磁盘。然后,显示相应的对话框,提示用户计算机将被关闭或者已经准备好被关闭。可

2007-01-19 15:58:00 873

转载 获到网卡MAC地址

CString GetMacAddress() { PIP_ADAPTER_INFO pinfo = NULL; unsigned long len = 0; unsigned long nError; nError = GetAdaptersInfo(pinfo,&len); if (nError == 0) { if (pinfo != NULL) { CString temp; temp.F

2007-01-19 15:23:00 823

转载 链表的C语言实现之循环链表及双向链表

  一、循环链表   循环链表是与单链表一样,是一种链式的存储结构,所不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者表头结点,从而构成一个环形的链。   循环链表的运算与单链表的运算基本一致。所不同的有以下几点:   1、在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是象单链表那样置为NULL。此种情况还使用于在最后一个结点后插入一个新的结点。   2、

2007-01-15 16:08:00 1113

转载 原始套接字伪造发包

源代码如下: int TcpOptScan::send_tcp_raw( SOCKET sd, struct in_addr *srcAddr, struct in_addr *desAddr, u16 srcPort, u16 desPort, u32 seq, u32 ack, u8 flags,u16 window, u8 *options, int optlen, char *data,

2007-01-10 16:01:00 2575

转载 UML语言各种图形的建立步骤

1. 用例图的建立步骤: 1〉 找出系统外部的活动者和外部系统,确定系统的边界和范围。 2〉 确定每一个活动者所希望的系统行为。 3〉 把这些系统行为命名为用例。 4〉 把一些公共的系统行为分解为一批新的用例,供其它的用例引用。把一些变更的行为分解为扩展用例。 5〉 编制每一个用例的剧本。 6〉 绘制用例图。 7〉 区分主业务流和例外情况的事件流。可以把表达例外的情况的事件流的用例图画成一个单独的

2007-01-09 10:21:00 1357

转载 在 Windows 下使用 Timer 驱动游戏

在 Windows 平台下写游戏,相比 console 等其它平台,最麻烦之事莫过于让游戏窗口于其它窗口良好的相处。 即使是全屏模式,其实也还是一个窗口。如果你不去跑窗口的消息循环,一个劲的刷新屏幕,我估计要被所有 Windows 用户骂死。 那么怎样让你的游戏程序做一个 Windows 下的良好公民呢? 最简单的方法是用循环用 PeekMessage 来处理 Windows 消息,一旦消息队列为

2007-01-08 16:50:00 889

转载 基于SPI的数据报过滤原理与实现

一、个人防火墙技术概述 随着网络安全问题日益严重,广大用户对网络安全产品也越来越关注。防火墙作为一种网络安全工具,早已受到大家的青睐。在PC机上使用的个人防火墙,很大程度上成为广大网民的安全保护者。Windows下的个人防火墙都是基于对数据报的拦截技术之上。当然在具体的实现方式上它们却有很大的不同。总的来说可分为用户级和内核级数据报拦截两类。其中内核级主要是TDI过滤驱动程序,NDIS中间层过滤驱

2007-01-08 14:51:00 917

转载 Windows 2000下的Raw Socket编程

Windows2000在TCP/IP协议组件上做了很多改进,功能也有增强。比如在协议栈上的调整,增大了默认窗口大小,以及高延迟链接新算法。同时在安全性上,可应用IPSec加强安全性,比NT下有不少的改进。 Microsoft TCP/IP 组件包含“核心协议”、“服务”及两者之间的“接口”。传输驱动程序接口 (TDI) 与网络设备接口规范 (NDIS) 是公用的。 此外,还有许多用户模型应用程序的

2007-01-05 10:52:00 1252 2

转载 手把手教你玩转SOCKET模型之重叠I/O篇

前 言 其实我首先应该道歉,因为7月份的时候曾信誓旦旦的说要写一套关于SOCKET所有模型的入门文章以及配套代码,不过没想到后天竟然被美女所迷出去度假了,刚刚回来不久。。。。。。-_-b其实那些模型的配套代码我已经基本写完了,只是没写配套文字,不过我想还是先从稍微难一点的模型写起吧,因为其他模型的入门毕竟要简单一些。 不过由于也是初学者,疏漏之处还望不吝指正。 本文凝聚着笔者心血,如要转载,请指明

2007-01-04 16:38:00 1359

转载 简单分析用SPI实现防火墙

简单分析用SPI实现防火墙 作者:snsins 如有转载,请注明并保持文章的完整 2002.12.5 -------------------------------------------------------------------------------------------------------- 本来上次写了一个简单的SPI防火墙程序(只做了IP过滤功能,包过滤功能没有去做)后,已经

2007-01-04 15:18:00 2415

转载 使用Sniffer截获流经本机网卡的IP数据包

Win2K下的Sniffer工具源代码 详细信息 Win2K下的Sniffer源代码。 [代码性质] VC完整应用程序代码 [代码作者] zw [文件大小] 130K [更新日期] 2002-11-26 19:47:00 [下载次数] 6015 http://www.vckbase.com/code/downcode.asp?id=1692 IP包监听程序(For 9x)源代码 详细信息 IP

2007-01-04 15:16:00 1508 1

转载 TCP/IP头格式

TCP/IP头格式 一、先是常用的IP头格式。 IP头格式: 版本号 (4位) IP头长度 (4位) 服务类型 (8位) 数据包长度 (16位) 标识段 (16位) 标志段 (16位) 生存时间 (8位) 传输协议 (8位) 头校验和 (16位) 发送地址 (16位) 目标地址 (16位) 选项 填充 简单说明 ============ 1. IP头长度计算所用单位为32位字, 常用来计算数据开始

2007-01-04 15:14:00 5896

转载 利用HOOK拦截封包原理

截获API是个很有用的东西,比如你想分析一下别人的程序是怎样工作的。这里我介绍一下一种我自己试验通过的方法。 首先,我们必须设法把自己的代码放到目标程序的进程空间里去。Windows Hook可以帮我们实现这一点。SetWindowsHookEx的声明如下: HHOOK SetWindowsHookEx( int idHook, // hook type HOOKPROC lpfn, // hoo

2007-01-04 15:04:00 897

转载 Raw Socket(原始套接字)实现Sniffer(嗅探)

 Raw Socket(原始套接字)实现Sniffer(嗅探) 一. 摘要 Raw Socket: 原始套接字 可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP, TCP, UDP... int sockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); 这样我们就创建了一个 Raw Socket Sniffer: 嗅探器 关于嗅探器的原理我想

2007-01-04 13:55:00 1039

转载 Windows下多线程编程技术及其实现

一、问题的提出 作者最近在开发基于Internet网上的可视电话过程中,碰到了这样一个问题。在基于Internet网上的可视电话系统中,同时要进行语音采集、语音编解码、图象采集、图象编解码、语音和图象码流的传输,所有的这些事情,都要并行处理。特别是语音信号,如果进行图象编解码时间过长,语音信号得不到服务,通话就有间断,如果图象或语音处理时间过长,而不能及时的传输码流数据,通信同样也会中断。这样就要

2007-01-04 12:12:00 947

转载 VC操作XML编程实例

XML编程实例 文章正文 前段时间,由于工作的需要,利用到了XML,所以对其进行了一些简单的研究。在此愿把一些心得写出来,与各位分享,不对的地方还望多多包涵。 1.什么是 XML? 首先,我想各位应该都已经大概知道什么是XML了。如果,你对什么是XML还没有一个概念的话,你可以看一些相关的材料,我就不多说了。 2.为什么要用XML? 其实,刚开始我也不是很明白,后来在工作中才慢慢意识到。首先,我写

2007-01-04 11:12:00 2939

转载 VC++中利用MSXML解析XML文档

  四、程序实现   下面通过一个具体的实例来说明在VC++中如何利用MSXML解析XML文档。   (1)源XML文档(xmlfile.xml)如下:   <?xml version="1.0" encoding="GB2312"?>   <Device id="10041" name="设备1">   <Type>13</Type>   <TypeName>保护</TypeName>   </

2007-01-04 10:57:00 1169

转载 活动桌面处理和一个例子

活动桌面处理和一个例子 问题: 在应用程序中如何激活活动桌面(Active Desktop)?一般情况下用户可以在桌面单击右键,选择“活动桌面”=〉“按Web页查看”来打开/关闭活动桌面特性。有没有什么函数可以程序中调用来实现对活动桌面的操作?另外,如何断定用户激活或取消活动桌面? 解答: 在回答这个问题之前,让我给你一个重要警告。那就是如果你打算开关活动桌面特性,请保证经过了用户的许可!最好使用

2006-12-31 14:31:00 1823

转载 基于Visual C++的Winsock API研究

        为了方便网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机

2006-12-31 11:30:00 971

转载 学习掌握重点:如何学好C++,用好类库很重要

科学计算 Blitz++ 参考网站:http://www.oonumerics.org/blitz/ Blitz++ 是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术,程序执行甚至可

2006-12-30 16:42:00 1044

转载 如何获取某个动态链接库的版本信息

我如何获得安装在我的系统上的某个特定的 DLL 的版本信息?我尝试着确定系统安装了哪个版本的 comctl32.dll。我见过有些代码调用 GetProcAddress 来获取各种函数,如 InitCommonControlsEx,以确定基于不同版本的函数调用。对于我来说,这是一个坎儿,到底用什么方法获得版本号? 有两种方法:容易的和难的。容易的方法是调用一个专门用于此目的的函数 DllGetVe

2006-12-28 14:29:00 1976

转载 用MFC的消息映像实现动态菜单

 --- 当我们提到动态菜单的实现时,我们通常的做法是使用GetMenu() 函数获取一个Cmenu 类指针,然后调用CMenu 类方法AppendMenu, InsertMenu, ModifyMenu, RemoveMenu 等。本文介绍一种更加简洁的方法,它利用MFC 的消息映像机制及CCmdUI 类方法来实现。 ---- 首先,我们简要说说VC 中MFC 的消息映像。每个Windows 程

2006-12-28 14:26:00 722

原创 VC知识库在线杂志

VC知识库在线杂志http://www.vckbase.net/vckbase/default.aspx 

2006-12-28 14:26:00 907

转载 UTF-8字符集基础

字符集简史 在所有字符集中,最知名可能要数被称为ASCII的7位字符集了。它是美国信息交换标准委员会(American Standards Committee for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。 但是,由于他是针对英语

2006-12-26 15:10:00 1539

转载 Visual C++ MFC 中常用宏的含义

AND_CATCH(exception_class,exception _object_point_name) 说明: 定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在AND_CATCH块中调用THROW_LAST宏以便把处理过程移到

2006-12-14 16:51:00 808

转载 监听以太网(三) Packet32数据结构说明

Packet32包中的数据结构: 第一个重要的数据结构:_ADAPTER(关于Network Adapter的) typedef struct _ADAPTER { // 一个打开的NPF driver实例的句柄: HANDLE hFile; // 当前打开的网卡的名字: CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; // 在这块Adapter上,一个数据包被写

2006-12-01 14:59:00 1221

转载 监听以太网(四) Packet32函数SDK

Packet32包中的函数说明: No.3. PacketSetHwFilter (设置过滤器) 设置一个hardware filter。比如,Filter参数传递NDIS_PACKET_TYPE_PROMISCUOUS,就可以设置网卡为混杂模式。 BOOLEAN PacketSetHwFilter( LPADAPTER AdapterObject, ULONG Filter ); Paramet

2006-12-01 14:57:00 2317 1

转载 监听以太网(一) Packet32包说明

简述   监听网络上的所有数据,是一个比较有趣的题目。流传比较广的一些监听程序,它们都使用了一个更加著名的开发包Packet32。比如,ntsniff、EthernetSpy、ntpacket等,还有赫赫有名的WinPcap。应用程序通过它可以设置网卡的工作模式,直接在网卡上读写数据,等等。 一般使用的Packet32的实现版本,是微软的Packet32.c和Packet32.h。这个版本写得比较

2006-12-01 14:56:00 2387 1

转载 监听以太网(二) Packet32包说明续

Packet32包中的函数说明: No.2. PacketOpenAdapter (打开网卡) 根据传入的设备名,打开它。 LPADAPTER PacketOpenAdapter( LPTSTR AdapterName ); Parameters: AdapterName: [in] 要打开的设备的名字。 Return Values: 如果打开成功,返回一个指针,它指向一个正确初始化了的ADAPT

2006-12-01 14:56:00 1405

转载 使用视频捕获

3.2.1创建捕获窗体 下面的例子通过使用capCreateCaptureWindow函数来创建一个捕获窗体 hWndC = capCreateCaptureWindow ( (LPSTR) "My Capture Window", // 如果是Pop-up窗口的窗口名称 WS_CHILD | WS_VISIBLE, // 窗口类型 0, 0, 160, 120, // 窗口位置和尺寸 (HWND

2006-11-20 14:24:00 1086

转载 错误代码中文查询GetLastError返回代码的含义

〖0〗-操作成功完成。 〖1〗-功能错误。 〖2〗-系统找不到指定的文件。 〖3〗-系统找不到指定的路径。 〖4〗-系统无法打开文件。 〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。 〖8〗-存储空间不足,无法处理此命令。 〖9〗-存储控制块地址无效。 〖10〗-环境错误。 〖11〗-试图加载格式错误的程序。 〖12〗-访问码无效。 〖13〗-数据无效。 〖14〗-存储器不足,

2006-11-20 14:16:00 7462 1

转载 动态链接库--- DLL基础

动态链接库--- DLL基础 从Microsoft公司推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是这个操作系统的基础。WindowsAPI中的所有函数都包含在DLL中。3个最重要的DLL是Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于

2006-11-17 11:23:00 1376

转载 基于Visual C++ 6.0的DLL通论

基于Visual C++ 6.0的DLL通论 一、前言   在Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,(例如显示的字体和图标存储在GDI DLL中、显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中、Windows编程所需要的大量的API函数也被包含在Kernel DLL中)。   在Windows操作系统中使用DLL有很多优点,最

2006-11-17 11:21:00 1154

转载 如何编写DLL文件

——动态链接库(dll)是包含共享函数库的二进制文件,可以被多个应用程序同时使用。建立应用程序的可执行文件时,不必将DLL连接到应用程序中,而是在运行时动态装载DLL,装载时DLL被映射到调用进程的地址空间中。通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一: ——(1)Windows的系统目录:/windows/system; ——(2)DOS中path所指出的任何目录; ——(3

2006-11-17 11:09:00 2638

转载 SDK编程笔记 — 计时器篇

  SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。   SetTimer的函数原型如下: UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ;   其中   hWnd是和timer关联的窗口句柄,此窗口

2006-11-16 15:41:00 698

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除