摘要:动态数组与字符串常量可算是两种“另类”数组。 VLA可变长数组并不为C89所支持,C99才开始支持VLA。但如果想在只支持C89的编译环境中使用VLA的话,怎么办呢?我们可以用动态数组来“模拟”,动态数组在矩阵的运算中很常见,常用来向函数传递一个大小可变的矩阵。动态数组的原理,是利用一块或多块动态分配的内存存储各维的首地址,这样就可以p[i][j]的形式访问数组的数...
阅读全文
摘要:讲到第五章了,数组两个字还离不开我们的左右,数组的内容也真多,另一方面也因为数组与指针的关系的确非常密切。 通常,对于int a[8][9]这个二维数组,我们可以这样定义一个指向它的指针: int (*p)[9]; 这个声明的形式跟人们所熟悉的int *p的形式大相庭径,初学者通常会感到迷惑,不理解的地方大致有四个: 1。为什么会以这种形式声明? 2。(*p)应该...
阅读全文
摘要:数组是存在于人们头脑中的一个逻辑概念,而编译器其实并不知道有数组这个东西,它所知道的,只是[]运算符,当遇到[]运算符的时候,编译器只是简单地把它转换为类似*(*(a+i)+j)这样的等价表达式,之所以是这种表达式,如前几章所述,是因为C语言的数组实现本质上是数组的嵌套。 由于这种等价关系的存在,会产生一些古零精怪的表达式,例如: 10[a] 这个表达式初看上去让人...
阅读全文
摘要:看见这个题目,也许有些人就会嘀咕了:难道两者不是一样的吗?C语言的多维数组不就是数组的数组吗?不!两者是有区别的,而且还不小呢。首先看看两者的共同点: 1。内存映象一样。 2。数组引用方式一样,都是“数组名[下标][下标]........”。 3。数组名都是数组的首地址,都是一个符号地址常量、一个右值。 由于两者的共同点主要反映在外部表现形式上,因此,从外部看来,数组...
阅读全文
摘要:这一章我们来讨论一下数组的内涵,对数组的内部构造进行一次解剖,看看里面究竟隐藏了什么秘密。 有了前面两章对数组名和C语言数组本质的澄清,再来理解这一章的内容,就容易多了。 在下面的叙述中,笔者会用到一个运算符sizeof,由于在不同的编译器和编译模式下,对一个地址进行sizeof运算的结果有可能是不同的,为了方便讨论,我都假设地址长度为4个字节。 多...
阅读全文
摘要:Tag: 指针 数组 数组是指针的基础,多数人就是从数组的学习开始指针的旅程的。下面我节选一些在各种论坛和文章里经常见到的关于数组的文字:“一维数组是一级指针”“二维数组是二级指针”“数组名可以作为指针使用”“数组名就是..........的常量指针”“数组名就是..........的指针...
阅读全文
摘要:作者:孙辉 在Microsoft的软件哲学中,框架窗口是一个十分重要的角色,这类窗口简直无处不在。所谓框架窗口,就是四个窗口边上具有停靠对象能力的窗口对象,从现象上看,框架窗口有十分特别的“边”,Microsoft构造的许许多多的东西都可以在其边上“靠泊”,这就是所谓的“Docking”,Internet Explorer是Microsoft的一个典型的运用框架窗口的代表作品。今天的IE,在不...
阅读全文
摘要:下载源代码 很久以来,在人们心目中,“黑客”和病毒作者的身上总是笼罩着一层神秘的光环,他们被各种媒体描述成技术高手甚至技术天才,以至于有些人为了证明自己的“天才”身份而走上歧途,甚至违法犯罪。记得不久前就看到过这样一个案例:一位计算机专业研究生入侵了一家商业网站并删除了所有数据。当他在狱中接受记者的采访时,他非常自豪地说这样做只是为了证明自己和获得那种成就感。 本文讨论的缓冲区溢出攻...
阅读全文
摘要:下载源代码 本文分如下章节: 前言 在MFC中使用浏览器 怎样扩展或定制浏览器 定制鼠标右键弹出出菜单 实现脚本扩展(很重要的external接口) C++代码中如何调用网页脚本中的函数 定制消息框的标题 怎样定制、修改浏览器向Web服务器发送的HTTP请求头 怎样修改浏览器标识 去掉讨厌的异常警告 怎样处理浏览器内的拖放 怎样禁止网页元素的选取 其它 前言 由于本人...
阅读全文
摘要:远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是很少有人知道,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程耶!)的地址空间,...
阅读全文
摘要:文章作者: 小马/SmallHorse [E.S.T VIP](这个E.S.T VIP写不写是无所谓的)信息来源: 邪恶八进制 中国 最近闲着无聊,自己琢磨着写了个简单的CMDSHELL后门。同时也避免了入侵时被杀毒软件K了。参考了T-CMD源代码和以前黑防的相关文章。从中学到了很多知识。 程序很简单,运行后默认打开1983端口,也可以自己设定端口,等待客户端来连接。连接可以使用nc。本来还...
阅读全文
摘要:刚刚学内核对象,想写个可以防杀的进程,但其他方法太高级,本菜鸟不感高攀,想了几天,想到一个很本的办法,不正确的方还请高手指点一下.程序运行两个事例,每个实例互相监视另外的实例是否存在,如果不存在,就运行一个.代码:// test_process.cpp : Defines the entry point for the console application.// #include "st...
阅读全文
摘要:#include #include #include #include #include #pragma comment(lib,"ws2_32.lib")#define MAX_HOSTNAME_LAN 255#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)#define MAX_ADDR_LEN 16struct ipheader {unsigned char ...
阅读全文
摘要:用VC制作应用程序启动画面 徐 茜 黄雪峰 广州大学软件所 解放军94782部队 摘 要:本文提供了四种启动画面制作方法。 使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是 可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本 文提供四种方法,前三种适用于基于文档的应用程序,第四种适用于基于对话框的应用...
阅读全文
摘要:原作者姓名 张增强 介绍VC中实现自绘背景,任意形状的对话框的实现。 读者评分 7 评分次数 2 正文程序截面如下图所示:效果的实现可以通常通过两个方法: 一、处理WM_PRINT实现。1 创建一个基于对话框的EXE工程Demo,一切采用默认设置。2 改变对话框资源:IDD_DEMO_DLG,设置STYLE风格的BORDER为NONE。导入背景需要的BMP资源,ID命名为IDB_B...
阅读全文
摘要:对论坛中有关UNICODE、ANSI字符集和相关字符串操作的总结!先声明不是我的杰作。我这里只是总结了一部分,如果有错误请指出,同时欢迎大家参与进来!Q UNICODE字符串如何显示 A 如果程序定义了_UNICODE宏直接用 WCHAR *str=L"unicodestring"; TextOut(0,0,str); 否则就需要转换类型 #include WCHAR *s...
阅读全文
摘要:Introduction This article is compilation of Question and Answer, which were asked between 25 April 2005 to 8 June 2005 (45 Days) on Visual C++ . Thanks to people for their contributions on the ...
阅读全文
摘要:通过编程实践可以发现,如果通过ATL向导生成的COM,自动会生成DllRegisterServer及DllUnregisterServer函数,可供regsvr32等调用进行 注册与反注册。而如果通过普通的DLL向导并选择Automation支持,则只会自动生成DllRegisterServer,而没有DllUnregisterServer接口,因 此需要手工添加一个DllUnregister...
阅读全文
摘要:最近天气太热,外加无聊,出于练习的目的,想到了写个盗QQ的软件,说“盗”,未免是太难听了吧,于是我给它起名为“UiQQ道”. 一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码! 通过安装钩子来监视QQ登陆界面就是获得密码...
阅读全文
摘要:刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="女侠程佩君";char temp[200];char *buf;CString str;_variant_t v1;_...
阅读全文