Welcome 微信登录

首页 / 软件开发 / C++

C++/CLI中有效使用非托管并列缓存

C++/CLI中有效使用非托管并列缓存

C++/CLI中有效使用非托管并列缓存2007-10-09 天极 谢启东Visual Studio安装会把Visual Studio的共享库放在一个称为"并列缓存(side-by-side cache)"的地方,那怎样才能有效地利用它呢?在文章开头,先看一个示例。在命令行中,创建一个C++源文件,输入例1中的代码。(虽然此处使用的是C++/CLI语法,但不管你是用C++/CLI、托管C++、或本地C++,都不影响要讲解的主题。)例1:l...
C++箴言:避免返回对象内部构件的句柄

C++箴言:避免返回对象内部构件的句柄

C++箴言:避免返回对象内部构件的句柄2007-10-31 假设你正在一个包含矩形的应用程序上工作。每一个矩形都可以用它的左上角和右下角表示出来。为了将一个 Rectangle 对象保持在较小状态,你可能决定那些点的定义的域不应该包含在 Rectangle 本身之中,更合适的做法是放在一个由 Rectangle 指向的辅助的结构体中:class Point { // class for representing points public: Poi...
C++箴言:理解inline化的介入和排除

C++箴言:理解inline化的介入和排除

C++箴言:理解inline化的介入和排除2007-10-31inline 函数——多么棒的主意啊!它们看起来像函数,它们产生的效果也像函数,它们在各方面都比宏好得太多太多,而你却可以在调用它们时不招致函数调用的成本。你还有什么更多的要求呢?实际上你得到的可能比你想的更多,因为避免函数调用的成本只是故事的一部分。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当你 inline 化一个函数,你可能就使得编译器...
C++继承性应用实例:日期和时间

C++继承性应用实例:日期和时间

C++继承性应用实例:日期和时间2007-10-31 pcvc.net time本文给出一个关于继承性的综合例子,该例子编写一个有关日期(年、月、日)和时间(时、分、秒)的程序。该程序建立三个类,其中一个是日期的类Date,一个是时间的类Time,另一个是日期和时间类DateTime,它是前面两个类为基类的派生类。下面是该程序的源码:#include#include#includetypedef char string80[80];class Date{ ...
C++中静态联编和动态联编介绍

C++中静态联编和动态联编介绍

C++中静态联编和动态联编介绍2007-10-31阿青联编是指一个计算机程序自身彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。静态联编静态联编是指联编工作出现在编译连接阶段,这种联编又称早期联编,因为这种联编过程是在程序开始运行之前完成的。在编译时所进行的这种联编又称静态束定。在编译时就解决了程序中的操作调用与执行该操作代码间的关系,确定这种关系又称为束定,在编译时束定又称静态束定。下面举一个静态联编的例子。 #...
C++编程批评系列 继承的本质

C++编程批评系列 继承的本质

C++编程批评系列 继承的本质2007-10-31Eiffel和C++都提供了多继承的机制。但Java却没有,因为它认为多继承会导致许多问题的出现。不过Java提供了接口(interface)作为一种替换机制,它类似于Objective C中的协议(protocol)。Sun宣称接口可以提供多继承所能提供的所有特性。Sun所宣称的“多继承会带来许多的问题”这个观点是对的,尤其是在C++中用以实现多继承的方法更能说明这一点。那些看起来...
共享软件注册部分的简单实现

共享软件注册部分的简单实现

共享软件注册部分的简单实现2007-10-31目前,很多共享软件中使用注册码来实现对软件的保护。所谓注册码,就是一组与用户的某些特定信息(如用户名称、计算机硬件等等)相关的字符串。由于注册码传输起来比较简单,同时容易验证(相对于磁盘、光盘指纹等),因此现在注册码的应用越来越广泛,甚至一些商业软件,如 XP也使用了类似的机制(Microsoft称为Windows Product Activation)。谈起注册码,就不能不提注册器。注册器是用来产生注册码的程...
C++实用技巧讲解

C++实用技巧讲解

C++实用技巧讲解2007-10-31在准标准C++中,有关缺省变量值的限制非常模糊。基于此,很多编译器允许开发人员将缺省变量值包含在函数声明,指向函数的指针和引用,成员函数的指针,以及typedef声明中。请看一下以下的程序:struct A{void func(int x=5){}};void g(int n=12){}// 根据C++标准,不能在以下声明中使用缺省变量值。void (*pf)(inti=120);void (A::*pmf)(int ...
使用Eclipse平台调试您的软件项目

使用Eclipse平台调试您的软件项目

使用Eclipse平台调试您的软件项目2007-10-31Paul Leszek调试是程序员无法回避的工作。调试方法有许多种,但归根结底,就是找到引发错误的代码。举例来说,在 Linux 应用程序中,分段故障被认为是最常见的错误之一。当程序尝试访问未分配给它的内存并因为分段违例而终止时,将产生这种错误。要修正这种错误,您需要找到引发该行为的那行代码。一旦找到有问题的代码行,这对于知道引发错误的上下文及其相关的值、变量和方法也是有所帮助的。使用调试器将使查找...
C++程序中导出Word文档的方法

C++程序中导出Word文档的方法

C++程序中导出Word文档的方法2007-10-31如果您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容详细全面,但是要在C++程序中导出Word文档,按照文中的方法来处理是很麻烦的,特别是需要填写的参数太多。所以我们考虑生成正确的VB脚本,然后执行生成Word文档的操作,这个方法的优点在于:一方面可以少填写参数;另一方面...
C++编程语言的四个调试技巧

C++编程语言的四个调试技巧

C++编程语言的四个调试技巧2007-10-311、调试标记适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef和#endif进行管理。当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失。常用的调试标记为DEBUG, 语句序列:#define DEBUG#ifdef DEBUG调试代码#endif2、运行期间调试标记在运行期间打开和关闭调试标记。通过设置一个调试bool标记可以实现。这对命令行运行的程序更为方便...
用C++程序删除文本文件中以“//”开头的行

用C++程序删除文本文件中以“//”开头的行

用C++程序删除文本文件中以“//”开头的行2007-10-31VC++只提供了删除一个空目录的函数,而用往往希望删除其下有很多子目录与文件的目录。为了实现这一功能,下面编写了DeleteDirectory 函数,它可以实现这一功能。函数原型:BOOL DeleteDirectory(char *DirName);返回值:成功删除时返回TRUE,否则返回FALSE参数DirName为要删除的目录名,必须为绝对路径名,如“c:\temp"...
C++编程人员容易犯的10个C#错误

C++编程人员容易犯的10个C#错误

C++编程人员容易犯的10个C#错误2007-10-31我们知道,C#的语法与C++非常相似,实现从C++向C#的转变,其困难不在于语言本身,而在于熟悉.NET的可管理环境和对.NET框架的理解。尽管C#与C++在语法上的变化是很小的,几乎不会对我们有什么影响,但有些变化却足以使一些粗心的C++人员时刻铭记在心。在本篇文章中我们将讨论C++编程人员最容易犯的十个错误。陷阱1: 没有明确的结束方法几乎可以完全肯定地说,对于大多数C++编程人员而言,C#与C+...
关于PE可执行文件的修改

关于PE可执行文件的修改

关于PE可执行文件的修改2008-01-05在windows 9x、、2000下,所有的可执行文件都是基于Microsoft设计的一种新的文件格式Portable Executable File Format(可移植的执行体),即PE格式。有一些时候,我们需要对这些可执行文件进行修改,下面文字试图详细的描述PE文件的格式及对PE格式文件的修改。1、PE文件框架构成DOS MZ headerDOS stubPE headerSection tableSect...
关于BCB写入文件进行感染的问题

关于BCB写入文件进行感染的问题

关于BCB写入文件进行感染的问题2008-01-05提示一点,一种最简单的方法是,自己做一个外壳程序(Shell),然后将要运行的程序以某种方式放入到外壳程序中(比如以资源或者特定位置数据),而外壳程序可以抽取原可执行程序文件得图标,并可修改自己的图标与之相同。这样一来,经过修改的程序就是 外壳程序 + 原可执行程序(已作为数据存在于外壳程序中),运行后自然先启动外壳程序,你可以在其中加入一些权限判定的代码,通过验证后,外壳程序将自身中的真正可执行文件数据...
对PE资源的研究

对PE资源的研究

对PE资源的研究2008-01-05前言:没什么好说的,发现这方面的资料全是英文的,于是我一边研究,一边翻译,一边写出自己的心得。希望大家尊重我的劳动成果,转贴保持完整。资源一般使用树来保存,通常包含3层,在NT下,最高层是类型,然后是名字,最后是语言。一个PE文件是否包含资源文件,通常检测块表(Section Table)中是否含有".rsrc",不过这个方法对有些PE文件无效。一个类型表结构如下————&...
<< 161 162 163 164 165 166 167 168 169 170 >>