
C++
文章平均质量分 71
dlyhlq
一个徘徊在新手和高手之间的人,强烈渴望和大家成为好朋友,让我们一起共同进步!
展开
-
VC6.0如何让new失败后抛出异常
VC6.0如何让new失败后抛出异常【简 介】标准C++规定new一个对象时如果分配内存失败就应抛出一个std::bad_alloc异常,如果不希望抛出异常而仅仅传回一个NULL指针,可以用new的无异常版本:new(nothrow)。C标准库一起使用,比如libcp.lib与libc.lib搭配。另外,VC6.0在new.cpp还定义了一个operator new,原型如下 :void转载 2008-01-28 17:15:00 · 909 阅读 · 0 评论 -
【C++提高】成员函数指针
类对象的成员函数有时可以当作一般的 ANSI C 函数一样处理。正如可以声明指向对象数据成员的一般指针一样,也可以声明指向对象成员函数的指针,然后通过该指针间接调用该函数。请看例1: 例1 使用成员函数指针 class Example{ long value; int time; public: long g转载 2008-02-15 22:50:00 · 552 阅读 · 0 评论 -
c++运算符优先级
http://www.cppreference.com/operator_precedence.html cppreference.com > C++ Operator Precedence C++ Operator Precedence转载 2008-02-14 22:00:00 · 535 阅读 · 0 评论 -
在 console mode 中使用 C/C++ 编译器
在 console mode 中使用 C/C++ 编译器侯捷 1999.04.08我总是鼓励 C/C++ 的学习者,在刚接触这个程式语言的时候,先以 console mode(DOS-like)程式为目标。换言之,不要一开始就想写 GUI 程式、想开视窗、想有眩目亮丽的画面 -- 那只是未走先飞,揠苗助长罢了。所谓 console 程式,就是文字模式的程式,我们可以在其中好好把 C转载 2008-02-18 21:02:00 · 489 阅读 · 0 评论 -
C/C++中函数指针的含义
函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向不同类型,或转载 2008-02-15 22:54:00 · 436 阅读 · 0 评论 -
[转贴]Administrator用户直接获取SYSTEM权限
来源:http://www.nsfocus.com作者:"scz" scz@nsfocus.com>标题: MSDN系列(3)--Administrator用户直接获取SYSTEM权限日期: 2003-06-21 21:51更新:--------------------------------------------------------------------------目录:转载 2008-02-19 22:00:00 · 2113 阅读 · 1 评论 -
隐藏任意进程,目录/文档,注册表,端口
来源: 作者: 发布时间:2007-05-24转载 2008-02-19 14:02:00 · 569 阅读 · 0 评论 -
编写小程序来获得进程的EPROCESS
2007-01-15 源自:ChinaITLab 收集整理每个Windows进程都有一个相对应的执行体进程(EPROCESS,也就是KTEB),EPROCESS不仅包括了进程的许多属性,还包扩了许多指向其他数据结构的指针,其中包含了大量有用的信息.本文仅讲述如何获得特定进程对应的EPROCESS,EPROCESS的作用及数据结构不在本文讨论范围之内. 绿盟高手flier在他的文章中提到,转载 2008-02-19 20:14:00 · 984 阅读 · 0 评论 -
ring0检测隐藏进程
标 题: 【原创】ring0检测隐藏进程作 者: 堕落天才时 间: 2007-05-10,13:28链 接: http://bbs.pediy.com/showthread.php?t=44243//网上得到一篇好文章 Ring0下搜索内存枚举隐藏进程 ,但是拿里面的代码来使用的时候发现并没有太多效果//于是修改之,终于实现了最初的目标//由于直接搜索内存,跟系统调度没什么关系,所以能够枚举到各种转载 2008-02-20 01:56:00 · 1024 阅读 · 0 评论 -
如何获取Windows系统登陆用户名
本文示例源代码或素材下载一般用 GetUserName(或 GetUserNameEx )函数可得到当前登陆登陆用户名(但不总会得到,下面会分析),此系统函数在Win95、WinNT 及以后所有操作系统中都可用。代码如下:BOOL CSecurityTool::GetCurrProcessUser(CString& strName){ BOOL bRet(TRUE); strName转载 2008-02-23 18:33:00 · 3367 阅读 · 0 评论 -
ShellExecute和命令行
前段时间我在网上发现一篇帖子,专门讲用ShellExcute来使用cmd.exe里的ping命令,感觉很新鲜,于是试了一下。我将它做成了单击事件,使命令只需用手一点按钮就能执行!太方便了,还是非常实用的,我把具体过程写在下面:原帖: 使用 ShellExecute 来进行 Ping 操作今日原创 2008-02-24 00:21:00 · 2420 阅读 · 0 评论 -
消息钩子函数入门篇
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,转载 2008-02-24 14:27:00 · 858 阅读 · 0 评论 -
我设置属性表为非模态后,为什么我的确定,应用等按钮看不到了
我设置属性表为非模态后,为什么我的确定,应用等按钮看不到了? faq-it.org/perl/--------------------------------------------------------------- 让VC中的非模式属性表PropertySheet出现OK/Cancel/Apply按钮 北京商即通数码科技有限公司 张宏 很多VC程序员都遇到过这个问题,当转载 2008-02-26 22:31:00 · 1745 阅读 · 0 评论 -
模态属性与非模态属性页
在资源编辑器设置了属性页之后,就可以通过ClassWizard创建一个CPropertyPage派生类了,其方式与创建CDialog派生类非常相似,惟一的区别在于不是选择CDialog而是选择 CPropertyPage作为基类。为了创建和显示一个模态属性单,通常会在栈上声明一个CPropertySheet对象,并调用其DoModal函数(就像CDialog对象所做的那样)。但是,对于属性页则需要转载 2008-02-26 22:33:00 · 847 阅读 · 0 评论 -
取特定进程的CPU占用率
#include #include #include #include #include #pragma comment ( lib , "Pdh.lib" )#define MAXPATH 80int __cdecl _tmain (int argc, TCHAR **argv){ HQUERY hQuery; HCOUNTER *pCounterHandle转载 2008-02-25 18:52:00 · 800 阅读 · 0 评论 -
MFC对WinSockt API的封装
MFC提供了两个类CAsyncSocket和CSocket来封装WinSock API,这给程序员提供了一个更简单的网络编程接口。CAsyncSocket在较低层次上封装了WinSock API,缺省情况下,使用该类创建的socket是非阻塞的socket,所有操作都会立即返回,如果没有得到结果,返回WSAEWOULDBLOCK,表示是一个阻塞操作。CSocket建立在CAsyncSocket的基转载 2008-03-04 20:48:00 · 687 阅读 · 0 评论 -
基于Visual C++的Winsock API研究 (1)
为了方便网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套WINDOWS下的网络编程接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一个通信转载 2008-03-04 20:50:00 · 510 阅读 · 0 评论 -
MFC下关于“建立空文档失败”问题的分析(转载)
这类问题的出现主要在bool CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo);函数的关键内容: "zj[v1K9-A BOOL bResult = TRUE; PzOnS switch (rCmdInfo.m_nShellCommand) t6l@ _x { /k8I6 case CComman转载 2008-03-02 13:43:00 · 4791 阅读 · 2 评论 -
如何修改VC编译后生成的EXE文件的图标
这个好像不用代码,你把想用的那个图标,在resource。h中define成一个所有图标中值最小的就可以了,我试过,它生产文件就是按数最小的那个来显示的。它默认是从IDR_MAINFRAME往上长的。#define IDR_MAINFRAME 128#define IDI_ICON1 129#define IDI_IC转载 2008-03-04 23:59:00 · 2119 阅读 · 3 评论 -
防止全局钩子的侵入
Windows消息钩子一般都很熟悉了。它的用处很多,耳熟能详的就有――利用键盘钩子获取目标进程的键盘输入,从而获得各类密码以达到不可告人的目的。朋友想让他的软件不被别人的全局钩子监视,有没有办法实现呢?答案是肯定的,不过缺陷也是有的。 首先简单看看全局钩子如何注入别的进程。 消息钩子是由Win32子系统提供,其核心部分通过NtUserSetWindowsHookEx为用户提供转载 2008-03-02 11:01:00 · 1065 阅读 · 0 评论 -
发一个自己编的WINDOWS钩子枚举程序
发一个自己编的WINDOWS钩子枚举程序本程序检测的是windows消息钩子,而并非SSDT钩子.钩子检查可以发现一些常见的木马程序,如利用键盘钩子盗取密码的木马等.运行时会释放出一个驱动文件EnumHook.sys 到系统drivers目录然后加载运行.本程序不支持WIN98,XPSP1和 WIN2000下有些钩子模块可能无法取得.由于每个钩子都会在全局对象句柄表中分配一个表项,包转载 2008-03-02 10:46:00 · 1402 阅读 · 0 评论 -
VC程序中实现控件的动态生成与响应(一)
一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Create()函数来创建。 而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建过程转载 2008-03-05 22:23:00 · 654 阅读 · 0 评论 -
字符串函数movmem
原型:extern void movmem(void *src, void *dest, unsigned int count); 用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。 举例: // movm转载 2008-03-06 18:43:00 · 871 阅读 · 0 评论 -
字符串函数setmem
原型:extern void setmem(void *buf, unsigned int count, char ch); 用法:#include 功能:把buf所指内存区域前count个字节设置成字符ch。 说明:返回指向buf的指针。 举例: // setmem.c #include #include原创 2008-03-06 18:44:00 · 944 阅读 · 0 评论 -
字符串函数strncmp
原型:extern int strcmp(char *s1,char * s2,int n); 用法:#include 功能:比较字符串s1和s2的前n个字符。 说明: 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例: // strncmp.c #include转载 2008-03-06 18:53:00 · 647 阅读 · 0 评论 -
ListCtrl控件的滚动条拖动疑难杂症
发布时间:2007-7-9 11:11:00;点击率:669;收藏本页<!--google_ad_client = "pub-8672584364535288";//336x280, 创建于 07-12-17google_ad_slot = "9907338743";google_ad_width = 336;google_ad_height = 280;//-->转载 2008-03-06 23:22:00 · 4373 阅读 · 0 评论 -
最常见的20种VC++编译错误信息集合
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。 寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 2、fatal error C1083: Cannot open include file: R转载 2008-03-08 13:43:00 · 747 阅读 · 0 评论 -
What"s New for MFC Developers?(翻译)
日期:2006-8-5 11:08:00 [uudo.net] 访问: What"s New for MFC Developers? By Anson Tsao and Walter Sullivan 翻译:依栏望海(kevin_kbh@21cn.com)【译者:因为时间关系,俺在一些省略了一些细节的翻译,不过俺还是都点到了。有兴趣的朋友 可以继续做。大家可以转载 2008-03-06 13:13:00 · 717 阅读 · 0 评论 -
字符串函数memccpy
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count); 用法:#include 功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。 说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回转载 2008-03-06 18:12:00 · 604 阅读 · 0 评论 -
字符串函数memicmp
原型:extern int memicmp(void *buf1, void *buf2, unsigned int count); 用法:#include 功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。 说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。 当buf1 当buf1原创 2008-03-06 18:41:00 · 541 阅读 · 0 评论 -
字符串函数memmove
原型:extern void *memmove(void *dest, const void *src, unsigned int count); 用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。 举例:原创 2008-03-06 18:42:00 · 473 阅读 · 0 评论 -
字符串函数memset
原型:extern void *memset(void *buffer, int c, int count); 用法:#include 功能:把buffer所指内存区域的前count个字节设置成字符c。 说明:返回指向buffer的指针。 举例: // memset.c #include #include转载 2008-03-06 18:42:00 · 618 阅读 · 0 评论 -
字符串函数stpcpy
原型:extern char *stpcpy(char *dest,char *src); 用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest结尾处字符(NULL)的指针。 举例: /转载 2008-03-06 18:45:00 · 806 阅读 · 0 评论 -
字符串函数strchr
原型:extern char *strchr(char *s,char c); 用法:#include 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。 举例: // strchr.c #include #include main()转载 2008-03-06 18:47:00 · 497 阅读 · 0 评论 -
字符串函数strcmp
原型:extern int strcmp(char *s1,char * s2); 用法:#include 功能:比较字符串s1和s2。 说明: 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例: // strcmp.c #include #include转载 2008-03-06 18:48:00 · 710 阅读 · 0 评论 -
字符串函数stricmp,strcmpi
原型:extern int stricmp(char *s1,char * s2); 用法:#include 功能:比较字符串s1和s2,但不区分字母的大小写。 说明:strcmpi是到stricmp的宏定义,实际未提供此函数。 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例: // s原创 2008-03-06 18:49:00 · 1030 阅读 · 0 评论 -
字符串函数strlen
原型:extern int strlen(char *s); 用法:#include 功能:计算字符串s的长度 说明:返回s的长度,不包括结束符NULL。 举例: // strlen.c #include #include main() { char *s="Golden Glob转载 2008-03-06 18:50:00 · 492 阅读 · 0 评论 -
字符串函数strnicmp,strncmpi
原型:extern int strnicmp(char *s1,char * s2,int n); 用法:#include 功能:比较字符串s1和s2的前n个字符但不区分大小写。 说明:strncmpi是到strnicmp的宏定义 当s1 当s1=s2时,返回值=0 当s1>s2时,返回值>0 举例: //原创 2008-03-06 18:55:00 · 790 阅读 · 0 评论 -
字符串函数strpbrk
原型:extern char *strpbrk(char *s1, char *s2); 用法:#include 功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。 说明:返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。 举例: // strpbrk.c转载 2008-03-06 18:57:00 · 429 阅读 · 0 评论 -
Windows程序设计翻译太烂
这是《windows程序设计》(第五版)122页的一节.读了之后,百思不得其解,甚使郁闷!设置都不变,居然得出了两种分辨效率:1.每英寸大概就为13像素;2.每英寸就为16像素?还有:10磅字既是10/72英寸,如果乘以96点,每英寸大概就为13像素.这又是什么逻辑啊? 今天,又思考了一番,肯定是翻译错了。然后突然,觉得移动两个逗号后,一切都那么合情合理!以前总以为自己对dpi和ppi不是很了解,原创 2008-03-06 23:11:00 · 1811 阅读 · 2 评论