当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来。
 

 

    摘要:我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本实例介绍了透明位图的制作知识,并将透明位图在一个对话框中显示了出来,界面效果如图一所示:560)this.style.width=560; onmousewheel = javascript:return big(this) src="/files/uplo......
    摘要:实现方法 效果示例图 560)this.style.width=560; onmousewheel = javascript:return big(this) alt="" src="/files/uploadimg/20051102/1412120.gif"> 第一步,建立一个windows application,然后在主form中放置一个button,如下图所示: 560)th......


C++的底层机制

c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来.

另外,你也不要为c++所提供的什么晚期捆绑等机制大呼神奇,它也仅仅是在所产生的代码中多加了几条而已,它远没有你想象的那么智能,所有的工作都是编译器帮你完成,真正到了执行的时候,计算机会完全按照编译器产生的代码一丝不苟的执行. 【程序编程相关:iSCSI与各类型存储方案综合评比

但如果真正到了产生可执行代码阶段,无论是c,c++,还是pascal,大家都一样,你认为c与c++编译器产生的机器代码会有所不同吗,你认为c++产生的机器代码会有访问限制吗?那么你错了.什么const,private,统统没有(const变量或许会放入只读数据段),它不会再给你任何的限制,你可以利用一切内存修改工具或者是自己写一个程序对某一进程空间的某一变量进行修改,不管它在你的印象中是private,还是public,对于此时的你来说都一样,想怎样便怎样. 【推荐阅读:传统无盘所存在的问题(3)

一.让我们从变量开始-----并非你想象的那么简单 【扩展信息:制造行业存储整合方案:东运公司从DAS到

(以下的反汇编代码均来自visial c++ 7.0)

变量是什么,变量就是一个在程序执行过程中可以改变的量.换一个角度,变量是一块内存区域的名字,它就代表这块内存区域,当我们对变量进行修改的时候,会引起内存区域中内容的改变.但是你若是学习过汇编或是计算机组成原理,那么你就会清楚对于一块内存区域来说,根本就不存在什么名字,它所仅有的标志就是他的地址,因此我们若想修改一块内存区域的内容,只有知道他的地址方能实现.看来所谓的变量一说只不过是编译器给我们进行的一种抽象,让我们不必去了解更多的细节,降低我们的思维跨度而已.例如下面这条语句:

int a=10;

按照我们的思维习惯来讲,就是“存在一个变量a,它的值是10”,一切都显得那么的自然.我们不必去在乎什么所谓的地址以及其他的一些细节.然而在这条语句的底层实现中,a已经不能算是一个变量了,它仅仅是一个标记,代表一个地址的标记:

mov dword ptr[a],0ah;

怎么样,这条语句不像上面那条易于接受吧,因为它需要了解更多的细节,你几乎不能得到编译器的任何帮助,一切思维上的跨越必须由你自己完成.
...   下一页
    摘要:在windows编程中图像处理相对比较复杂,好在c++ builder提供了一些图形类,它们通过对windows中的图形对象进行包装,从而大大简化了图像操作的难度。下面就通过对图像进行柔化、锐化、浮雕效果等几个特殊效果处理来具体说明一下。 一、准备工作 位图图形实际上是像素的二维数组,它记录了每个像素的颜色信息,而tcanvas类提供了pixels属性,用它可以存取指定像素的颜色值,通过这个属......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE