VC开发
文章平均质量分 85
lithe
这个作者很懒,什么都没留下…
展开
-
使用FormatMessage获取由GetLastError得到的错误的描述
char szError[256]; DWORD dwError = GetLastError(); FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, 0, 0, szError, sizeof(szError), NULL); AfxMess原创 2005-01-11 21:04:00 · 4195 阅读 · 0 评论 -
解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。(1原创 2005-09-17 09:52:00 · 1617 阅读 · 0 评论 -
VC++下命名管道编程的原理及实现
管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。命名管道(Named Pipes)是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一种命名的管道。一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,并且为客户——服务通信提供有一个分离的管道。实例的使用保证了多个管道客户能够在同一时间使用同原创 2005-09-20 10:10:00 · 12425 阅读 · 4 评论 -
C++字符串完全指引之一 —— Win32 字符编码
C++字符串完全指引之一 —— Win32 字符编码原著:Michael Dunn翻译:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁原创 2005-10-09 15:55:00 · 1627 阅读 · 0 评论 -
如何用 Win32 APIs 枚举应用程序窗口和进程
如何用 Win32 APIs 枚举应用程序窗口和进程编译:NorthTibet下载源代码枚举顶层(top-level)窗口枚举进程用 ToolHelp32 库枚举进程用 PSAPI 枚举进程16位进程的处理方法关于代码参考资料摘要 我们在编写程序时,常常遇到的一件事情就是要准确列出系统中所有正在运行的程序或者进程。Windows 任务管理器就是这样的一个程序。它既能列出运行的桌面应用程序,又能列原创 2005-09-30 08:16:00 · 1911 阅读 · 0 评论 -
C++字符串完全指引之二 —— 字符串封装类
C++字符串完全指引之二 —— 字符串封装类原著:Michael Dunn作者:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part II 引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我原创 2005-10-09 15:58:00 · 3666 阅读 · 2 评论 -
DLL的远程注入及卸载技术详解
DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,用户也就无法在资源管理器中删除这个DLL文件,真可谓原创 2005-10-14 11:59:00 · 3499 阅读 · 0 评论 -
c++资源之不完全导引(全文)
撰文/ 曾毅 陶文最后更新:2004年6月12日声明:.本文2004年5月首发于《CSDN开发高手》,版权归该杂志与《程序员》杂志社所有。杂志限于篇幅部分内容有所删节,此处版本为相对完整版本。.本文为介绍性文章,会随笔者学习C++语言不断更新。前言无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书原创 2005-10-28 13:16:00 · 2337 阅读 · 0 评论 -
Office2000下内部COM插件的编程实现
Office2000下内部COM插件的编程实现译者:徐景周下载示例源代码简介你也许曾在Office2000下的Word2000、Access2000、Excel2000、PowerPoint2000等软件中的工具条或菜单条资源中,看到一些其它软件加入的新的自定义工具条按钮或菜单条,当点击它们时,会有其不同的响应发生。下面,让我们也来实现这些功能,需要说明的是,在这里我们不用VB/VBA来实现它,而原创 2005-10-22 13:48:00 · 2955 阅读 · 0 评论 -
BT运行原理分析及内网提速方法(转)
BT运行原理分析及内网提速方法(转)由于内网用户无法提供一个对外的端口,所以无法做服务器.但用BT的时候,发现它可以让内网用户做 Send,作为程序员就忍不住下载了它的源代码分析了一把(为了看它,还专门去写了一下Python:})比起其它的P2P软件,BT有个独特的地方,它存在一个中间的WEB服务器,就是我们在发布的时所填写的announce.该服务器提供了发布的统一管理,不像其它P2P软件那样到原创 2005-11-08 13:42:00 · 8845 阅读 · 3 评论 -
在VC6中使用GDI+
http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip包含了头文件和库(.dll和.lib形式的都有)我在编译过程中出现了编译错误:ULONG_PTR没被定义。错误在GdiPlusInit.h中typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token);一行。然后我在GdiP原创 2005-11-08 17:07:00 · 2827 阅读 · 0 评论 -
VC6开发Web Services 客户端
下面是个控制台的样例Toolkit3.0 终于给出VC6的样例了,1.0只能看到VB和ASP的#include #import "msxml4.dll" using namespace MSXML2;#import "C:/Program Files/Common Files/MSSoap/Binaries/mssoap30.dll" / exclude("IStream",原创 2005-11-30 14:44:00 · 2116 阅读 · 0 评论 -
共享内存实现进程间大数据的交换
引言 进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成,通常一个程序设计人员只负责其中一个或几个模块的开发,这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独立开发出来的程序模块最终需要作为一个整体来运行,即组成一个系统,在系统运行期间这些模块往往需要频繁地进行数据交换和数据共享,对于动态链接库同其主调应用程序之间原创 2005-12-13 13:55:00 · 3262 阅读 · 3 评论 -
IME输入法编程
第一章 Windows9x系统下汉字输入法的基本原理 Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进入到目的地。由于应用程序各不相同,用户不可能自己去设计转换程序,因此,汉字输入自然而然落到WINDOWS系统管理中。一、输入法与系统的关系 键盘事件 应用程序 | | Windows的USER.EXE转载 2006-03-27 12:52:00 · 2676 阅读 · 0 评论 -
Windows错误代码大全
当你遇到windows错误时,只要打开查询我们的手册,立马能知道是哪类错误,能利于针对解决问题!0000 操作已成功完成。0001 错误的函数。0002 系统找不到指定的文件。0003 系统找不到指定的路径。0004 系统无法打开文件。0005 拒绝访问。0006 句柄无效。0007 存储区控制块已损坏。0008 可用的存储区不足,无法执行该命令。0009 存储区控制块地址无效。0010 环境错误原创 2005-09-09 13:51:00 · 1943 阅读 · 0 评论 -
用ATL建立轻量级的COM对象(一)
用ATL建立轻量级的COM对象第一部分作者:赵湘宁本文假设你熟悉C++和COM。摘要: ATL——活动模板库(The Active Template Library),其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持。 由于COM技术良好的口碑,越来越多的程序原创 2005-03-06 01:30:00 · 1754 阅读 · 0 评论 -
VxD编程入门教程
VxD编程入门教程作者:TBsoft--------------------------------------------------------------------------------一、Windows 95 DDK的安装安装Windows 95 DDK一般需要先安装Win32 SDK,原因是Windows 95 DDK需要Win32 SDK的16位资源编译器,但是Win3原创 2005-01-13 08:32:00 · 1986 阅读 · 0 评论 -
Dll(动态链接库)学习笔记
DLL(Dynamic Link Libraries)专题: 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运原创 2005-01-13 19:34:00 · 1126 阅读 · 0 评论 -
浅谈HOOK技术在VC编程中的应用
摘要: 本文针对HOOK技术在VC编程中的应用进行讨论,并着重对应用比较广泛的全局HOOK做了阐述。 引言 Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现的。但在通常情况下,应用程序只能处理来自进程内部的消息或是从其他进程发过来的消息,如果需要对在进程外传递的消息进行拦截处理就必须采取一种被称为HOOK(钩子)的技术。钩子是Wi原创 2005-01-17 20:41:00 · 1637 阅读 · 0 评论 -
VC下通过系统快照实现进程管理
引言 每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序。但是也有为数不少的在后台运行的程序是没有可视界面的,对于这类应用程序用户只能通过CTRL+ALT+DEL热键呼出"关闭程序"对话框显示出当前系统进程列表,从中可以结束指定的任务。显然,该功能在一些系统监控类软件中还是非常必需的,其处理过程大致可以分为两原创 2005-01-17 20:35:00 · 2641 阅读 · 1 评论 -
使用VC++进行Tray区编程
使用VC++进行Tray区编程1.使用向导建立一个MFC对话框应用程序,假设叫TrayDemo2.增加消息处理函数 virtual BOOL OnInitDialog(); afx_msg void OnDestroy(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg LRESULT OnTrayNotify(WPARA原创 2005-01-13 09:50:00 · 1836 阅读 · 0 评论 -
Hook学习笔记
一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序原创 2005-01-13 19:32:00 · 1258 阅读 · 0 评论 -
APIHOOK实例剖析
一、APIHOOK之dll部分 //////////////////////////////// APIHook_Dll.cpp ////////////////////////////////////////// rivershan写于2002.9.23 //////////原创 2005-01-13 19:53:00 · 1195 阅读 · 0 评论 -
VC++中进程与多进程管理的方法
摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行、子进程的创建与结束等作了较详细的阐述。 关键词: VC++6.0;进程;环境变量;子进程 进程 进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和原创 2005-01-17 20:30:00 · 1218 阅读 · 0 评论 -
在Visual C++中检测和隔离内存泄漏
具有动态的分配和释放内存的能力是C/C++程序语言的重要特色之一。VisualC++ debugger和CRT库提供了一系列有效的检测和鉴定内存泄漏的工具。 设置内存泄漏检测 检测内存泄漏的基本工具是调试器和CRT调试堆函数。为了使用调试堆函数,在你的程序中你必须含有下面的说明:#define _CRTDBG_MAP_ALLOC#include#include 必须保证原创 2005-01-19 08:18:00 · 2997 阅读 · 0 评论 -
ATL介绍(一)
ATL 介 绍( 一) 吕 思 伟 ---- 潘 爱 民 一、 什 么 是ATL ---- 1 .COM 的 发 展 及 其 局 限 性 ---- 自 从1993 年Microsoft 首 次 公 布 了COM 技 术 以 后,Windows 平 台 上 的 开 发 模 式 发 生 了 巨 大 的 变 化, 以COM 为 基 础 的 一 系 列 软 件 组 件 化 技 术 将Windows 编 程原创 2005-03-04 09:23:00 · 1743 阅读 · 0 评论 -
ATL介绍(二)
---- ( 接 上 期) ---- 在C++ 语 言 中 模 板 类 的 定 义 格 式 如 下: template class MyTemp{ MyTemp( ) { }; ~MyTemp( ) { }; int MyFunc( int a) ;} … …Int MyTemp::MyFunc( int a){}---- 首原创 2005-03-04 09:33:00 · 1700 阅读 · 0 评论 -
ATL介绍(三)
ATL 介 绍 ( 三 ) 吕 思 伟---- 潘 爱 民 ---- ( 接 上 期) 允 许 支 持MFC。 由 于ATL 对 除COM 以 外 的 基 本 的Windows 编 程 方 面 的 支 持 极 为 有 限, 同 时 许 多 程 序 员 对MFC 又 非 常 熟 悉, 因 此 在ATL 的 工 程 设 置 中 允 许 在ATL 工 程 内 部 支 持 使 用MFC, 即 可 以 使原创 2005-03-04 20:40:00 · 1897 阅读 · 0 评论 -
ATL介绍(四)
ATL 介 绍( 四 ) 吕 思 伟--潘 爱 民 (接 上 期) ---- 4. 编 译 连 接 应 用、 注 册COM 服 务 程 序 ---- 对ATL 工 程 的 编 译 连 接 过 程 包 括 下 面 的 几 个 步 骤: 使 用MIDL 编 译 工 程 的IDL 文 件, 形 成 接 口 定 义 的 头 文 件 和 用 于 调 度(Marshalling) 的 代 码。 编 译 工 程原创 2005-03-04 20:42:00 · 1791 阅读 · 0 评论 -
VC利用boost库解析正则表达式
boost下载地址:http://www.boost.orgboost库安装比较麻烦,需要自己编译源文件,我整理了一下,如果仅仅需要做正则表达式,按下面的代码敲就行了.cmdvcvars32.batcd D:/boost_1_32_0/libs/regex/buildd:nmake -fvc6.maknmake -fvc6.mak install注意,别看下载下来的数据包没有多大,解压缩之转载 2006-09-21 11:40:00 · 2340 阅读 · 0 评论