Welcome 微信登录

首页 / 软件开发 / C++

文件重定义冲突的分析与解决

文件重定义冲突的分析与解决

文件重定义冲突的分析与解决2009-01-27 vckbase hrg21引言有时候看到论坛上有人问编译时重定义现象的问题。这个问题与头文件包含冲突有关,改一改相关头文件包含就会让问题消失。我在这里要以 <windows.h> <winsock.h> <winsock2.h>这3个头文件为例分析为什么会产生这种原因;然后给出一种不会产生冲突的做法;最后就此例的分析给出结论。本文对于已经知道冲突原因的读者是多余的,但对于一...
NT环境下进程隐藏的实现

NT环境下进程隐藏的实现

NT环境下进程隐藏的实现2010-11-29局部变量在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的 方法有很多种,比如说使用注册表插入DLL,使用Windows挂钩等等。其中比较有 代表性的是Jeffrey Richer在《Windows核心编程》中介绍的LoadLibrary方法和 罗云彬在《windows环境下32位汇编语言程序设计》中介绍的方法。两种方法的 共同特点是:都采用远程线程,让自己的代码作为宿主进程的线程在宿主进程的 ...
C++编译器如何实现异常处理

C++编译器如何实现异常处理

C++编译器如何实现异常处理2009-01-27 vckbase Vishal Kochhar译者注:本文在网上已经有几个译本,但都不完整,所以我决定自己把它翻译过来。虽然力求信、雅、达,但鉴于这是我的第一次翻译经历,不足之处敬请谅解并指出。与传统语言相比,C++的一项革命性创新就是它支持异常处理。传统的错误处理方式经常满足不了要求,而异常处理则是一个极好的替代解决方案。它将正常代码和错误处理代码清晰的划分开来,程序变得非常干净并且容易维护。本文讨论了编译...
SetForegroundWindow及类保护

SetForegroundWindow及类保护

SetForegroundWindow及类保护2010-11-29彭德奎1、列表视图模式2、SetForegroundWindow3、类保护我试图使用C++/MFC自定义文件打开对话框。是否有一种办法能在打开/保存对话 框启动时改变列表视图的类型?启动时默认的是列表视图, 这个视图没什么用 。我希望程序启动对话框时采用详细资料视图,或最好是用户最后一次使用的视 图。您能推荐一种方法吗?Udi Mishan当然,在 Windows 中总 是有办法的。当我第一...
volatile关键字的说明以及测试

volatile关键字的说明以及测试

volatile关键字的说明以及测试2009-01-27volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处...
编写在浏览器中不弹出警告的ActiveX控件

编写在浏览器中不弹出警告的ActiveX控件

编写在浏览器中不弹出警告的ActiveX控件2010-11-29王正平我们在编写ActiveX控件时,如果用在浏览器中,经常都会弹出现在运行的脚 本不安全的提示, 如果给客户使用,将会带来极大不便。按照MSDN的介绍通常 有两种一种是实现IObjectSafe接口,一种是通过修改注册表的方法。一般如果 用ATL开发ActiveX控件,就用实现ObjectSafe接口的方法。如果用MFC,我 觉得还是用修改注册表的方法比较方便。下面我们将第二种方法:要包 括...
如何删除托管对象及包装一个库

如何删除托管对象及包装一个库

如何删除托管对象及包装一个库2009-01-27Northtibet在托管 C++ 中,请告诉我使用 delete 操作符销毁托管对象是否安全?是的,在托管 C++ 中,你可以删除( delete )托管对象,只要你理解删除只不过是调用对象的析构函数,但析构函数必须显示定义。调用 delete 不会释放对象的存储区。只有垃圾收集器才行。Figure 1 展示了一个简单的程序,该程序定义了一个带析构函数的托管类,当它运行的时候会显示一条信息。TESTDTOR...
编写插件锁住Word文档窗口 - API和COM接口Hook综合演示

编写插件锁住Word文档窗口 - API和COM接口Hook综合演示

编写插件锁住Word文档窗口 - API和COM接口Hook综合演示2010-11-29现在的木马后门种类非常之多,其中有些木马专门以Office 文档为窃取目标 ,我最近做了一些Anti这些木马的工作,在工作中我基本上实现了阻止未知程序 利用Office自动化接口窃取Word内容,但限于公司利益我只能写一些基本上已经 比较成熟和公开的技术,当然其中了包含我的设计思想,我想多多少少会让你有 所收获,你可任意转载文章,但请注明作者和出处,谢谢!首先我们知道O...
程序风格的要素-C++风格指南

程序风格的要素-C++风格指南

程序风格的要素-C++风格指南2009-01-27 vckbase Neill Kipp译者序:这是一篇写于1996年1月23日的文章,到现在已经有9个年头了,很陈旧,有可能跟不上形势,但是有些东西仍然值得现在的开发者学习,我翻译这篇文字仅供读者参考。原文链接:http://www.gamedev.net/reference/articles/article708.asp文件头文件有".h"后缀。头文件包含类(class),结构(str...
基于表达式计算的科学计算器

基于表达式计算的科学计算器

基于表达式计算的科学计算器2010-11-29 vckbase Gamsn同诸多网友一样,受益于VCKBASE,觉得应为他做点贡献了,于是做了这么一 个基于表达式求值的科学计算器与各位爱好的朋友分享。如您所知,这方面的程序很多,看过ZF.Yi的相关作品,也见过黄江峰的相关 程序,但我觉得我的计算类有不同于二位的特色,如计算结果的有效位较长(16 位);支持不严格的表达式输入(如cos(23)*sin(34)与cos(23)*sin(34与 cos23*si...
基于SHA-256的HMAC文件校验器

基于SHA-256的HMAC文件校验器

基于SHA-256的HMAC文件校验器2010-11-29 vckbase GamsnHMAC即带密钥的HASH函数,用它产生的报文鉴别码(MAC)可以实现报文鉴别 。这里我将其做成一个软件,用于对文件的合法性进行校验。以下我先简单介绍 软件相关背景知识再介绍其代码实现。一、背景知识简介有时候 进行通信的双方基于安全的考虑需要对对方发过来的消息进行校验,以确定消息 是未经第三方修改过的。这种校验可以这样进行:双方共同约定一个密钥( 即一个密码),这个密钥是...
《UTF-8与GB2312之间的互换》的改进

《UTF-8与GB2312之间的互换》的改进

《UTF-8与GB2312之间的互换》的改进2009-01-27 vckbase 李天助最近,在做一个小程序的时候,突然遇到了汉字编码转换问题。关于如何在UTF-8与GB2312之间转换的问题。在VC知识库里看到吴康彬的文章《UTF-8与GB2312之间的互换》,文章浅显易懂,代码也不长。省了我不少的找资料的时间。在此谢谢了。 :)在看代码的过程中,吴康彬用了许多字符串的转换,来进行2进制的运算,这就涉及到大量的IO操作,效率肯定比较低。而且编码转换的工作...
关于IDispatch接口的LPDispatch属性的实现

关于IDispatch接口的LPDispatch属性的实现

关于IDispatch接口的LPDispatch属性的实现2010-11-29杨老师好象是绕口令一样的标题。呵呵,看看下面的这个例子,我想大家就知道是 什么意思了吧。在脚本语言中,我们经常看到类似这样的语句:obj.Document.Write(...), obj显然是一个自动化的对象(IDispatch),它可以拥有方法和属性。但 Document 到底是什么那?如果说它是方法,那么就无法解释 Document.Write 了;如果说 他是属性,那么属性...
走近STL

走近STL

走近STL2009-01-27 vckbase 陶汉军本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。什么是泛型程序设计我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样。STL是什么作为一个C++程序设计者,STL是一种不可忽视的技术。Sandard Templ...
理解COM套间

理解COM套间

理解COM套间2010-11-29junguo简序大学毕业前的最后一学期,在一家公司实习,当时的工作需要用 到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么 回事,只知道上网到处找别人的源码解决自己的问题;那段日子到现在回忆起来 都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码。但 并不清楚自己到底在做什么;那时候对自己能不能成为一个程序员充满了怀疑。 在实习结束返校的火车上,一夜间,我把一本《COM本质论》翻看了...
一步一步实现MFC扩展DLL中导出类和对话框

一步一步实现MFC扩展DLL中导出类和对话框

一步一步实现MFC扩展DLL中导出类和对话框2009-01-27 vckbase 江上飞鸟如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩展DLL步骤:运行Visual Studio 6.0->File->New...->Projects; 选择Mfc AppWiz...
简易软盘镜像工具的实现及操作系统编写初步

简易软盘镜像工具的实现及操作系统编写初步

简易软盘镜像工具的实现及操作系统编写初步2010-11-29 vckbase liu_sir摘要本文给出了软盘镜像生成工具的实现,并用其把自己编译生成的引导 文件制作成软盘镜像,写入软盘实现一个简单的引导。关键词 软盘镜像工具 操作系统引导。为了深入的了解80X86计算机的内部原理 ,参照别人的程序用汇编写了几个小程序。但生成软盘镜像的工具大都是DOS版 本的,于是就想自己用VC也实现一个,并用把自己的引导程序写入软盘上验证一 下。1、镜像工具的基本原理镜...
在VC6上使用正则表达式

在VC6上使用正则表达式

在VC6上使用正则表达式2010-11-29 vckbase 赖锋很久没有VCKbase发表文章了,这次发表一些比较基础的文章吧!看过" 保证你现在和未来不失业的十种关键技术"这篇文章了吧,这次我就拿出一 个不会让你失业的技术讲讲吧,老虾们千万不要拿鸡蛋砸我,我只是写给初 学者的!关于正则表达式的教程和用法网上有很多的资源,基本的用法 我讲了也是浪费你的眼力,所以我会以一个实例来教你学习正则表达式,我两年 前做的一个MIS中使用过正则式...
轻松实现DES算法查看器

轻松实现DES算法查看器

轻松实现DES算法查看器2010-11-29 vckbase 小帅DES(Data Encrypton Standard) 算法的实现网上已经有很多,本人在此讲述 的是在DES加密过程中如何查看16迭代过程中生成的Ki,Li,Ri,Fi,Si等,这 样可以当做一个DES加密对照器,这样可以方便的发现你在加密过程中出现的错 误!图一 :程序运行界面本程序用了一个列表框来显示所有16次迭代的所有信息,并 在选择一栏后,在下面的编辑框中显示详细信息,这样就可以不...
<< 81 82 83 84 85 86 87 88 89 90 >>