当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·谢谢大家在线等    »显示摘要«
    摘要: 谁知道 怎么传递adotable的指针呢? 就是adotable的指针默认指到第一行的数据 我用什么样的 语句能让他指到 我需要的行? ......
 ·关于adoquery的问题    »显示摘要«
    摘要: ansistring temp; temp="select 分类 from notebook where 分类="; if(item->text!="请选择分类") { //adoquery->active=false; temp+=item->text; adoquery->close(); adoquery-......


高手请进

我也不知道这个问题是不是应该放在这里,但看这里人气多,所以就……  
   
  我经常会为这些问题所困惑:  
   
  1.Console程序和一个纯DOS程序有什么区别??  
      Console程序是16位的还是32位?在NT下面的“命令行提示符”窗口中运行的程序是16位的还是32位的?CS是不是一个纯DOS程序呢?为什么在他开始运行的时候屏幕要全部黑一下,然后开始运行?那些“要先黑一下,再在全屏下运行”的程序和那些在规范的WINDOWS窗口下运行的程序有什么区别?有人说CS是运行在一中V86的模式下,但是我直接用16位的汇编指令编写了一个纯8086的程序,拿到XP下面执行,但是它还是规规矩矩地在命令行提示的窗口中运行,他在运行时是16位的吗?这个纯16位的8086为什么没有“使屏幕先黑一下,再全屏运行”呢?  
   
  2.NT不是和DOS绝缘了吗?为什么我还可以在XP下写汇编程序的时候使用“int   21h”去“call   DOS”呢?!经常会看到有的书上说“哪些内存是干什么的”,“哪些内存被系统占用了”等等。他们怎么知道的呢?是不是有什么程序可以窥探内存的使用情况,或者有什么文档说明这些呢?  
   
  3.整个Intel   80X86指令系统没有一条指令是动态分配内存的.所有程序的数据段,都必须有明确的界限但是C++这样的高级语言中却有new和delete这样的关键字.C++是怎样实现这项功能呢?如果他提前申请了大段内存,然后进行分配,那么我用一个死循环去new一系列数据,C++程序仍然可以做到,并直到内存耗尽为止,请问这又如何解释?  
   
  请大家尽量解释,或发表自己的看法,但尽量要有根据,可以给出一些解答类似问题的书籍。谢谢!

NO.1   作者: lyzcom

Console是控制台。其官方说法是32位的,因为其执行格式PE。而在DOS下,这个格式是不一样的。到于CS运行时为什么会先黑一下,这个和DirectX有关系,因为DirectX的图形初始化就是这样的。尤其是CS使用了DDSCL_FULLSCREEN模式,这是独占模式。一个DOS程序拿到WINDOWS下执行,只能说是WINDOWS能够运行以前的DOS程序而已。  
   
  规探内存的使用情况不难,搜索一下,有人问过这样的问题。  
   
  当然没有动态分配,但是可以先分配一些,不够用的时候,再分配当前的数量加上一个基数,然后将当前的内存中的内容move过去,再delete当前的内容。然后将指针指向新的区域。这样内存块就是可变的了。new和delete只是一个操作符而已,其实和malloc、free没有什么区别,只是new中除了malloc之外,还会帮你调用一个函数的构造函数,delete同理,会调用其析构函数。  
  多说一点,对于像char   buffer[255]这样的方法,其实道理是一样的。

NO.2   作者: BlueSky2008

<<windows驱动程序设计>>推荐楼主看一看。


 ·如何在linux下修改mac地址,    »显示摘要«
    摘要: 请教各位高手。谢谢了。 ......
» 本期热门文章:

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