...

解决方案 »

  1.   

    什么意思?如果是说要可以在纯DOS下运行又可以在WINDOWS的虚拟DOS下运行,肯定没问题。如果是说同样一个应用程序在DOS下可以运行,在WINDOWS的GUI界面下(不是DOS的图形界面)也可以运行,则必须在程序入口的地方进行环境判断同时作两个分支处理,理论上可以。
      

  2.   

    所有 PE文件(甚至32位的 DLLs) 必须以一个简单的 DOS MZ header 开始。有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,然后运行紧随 MZ header 之后的 DOS stub。DOS stub实际上是个有效的 EXE,在不支持 PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串 "This program requires Windows" 或者程序员可根据自己的意图实现完整的 DOS代码。通常我们也不对 DOS stub 太感兴趣: 因为大多数情况下它是由汇编器/编译器自动生成。通常,它简单调用中断21h服务9来显示字符串"This program cannot run in DOS mode"。基于以上,你可以在dos stub里面写dos下面的程序,其他部分里面写win32程序。-------------------------------
    =fly by=
      

  3.   

    dos是NE,window 95以上是pe.问题不是很明确。
      

  4.   

    应该可以,一个普通的win程序在dos下运行提示"This program can not be run in ms-dos mode",这应该算作dos程序吧
    但是谁能够写一个window程序,而不掉用任何window的资源的程序呢,这样的程序肯定行了。
      

  5.   

    多年前写过一个,好象用BC就有如此功能。
    将一个DOS程序嵌入,如在DOS下运行HD-COPY而WINDOWS下运行
    其他功能。我有快7-8年了,具体的有些忘了。
      

  6.   

    可以
    32位和16位程序需要通过thunk转换一下
    至于资源,
    如果win31下应该直接能用
    如果纯dos恐怕就不行了