tc编译的dos程序和vc编译的win32控制台程序的异同

2016-02-19 11:50 2 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是tc编译的dos程序和vc编译的win32控制台程序的异同,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

它们有着本质的区别:1:一个是16的DOS程序,一个是标准的32的Windows应用程序.前者依然受着64KB内存分段约束,后者无忧无虑地使用着4GB内存地址空间.它们本来就是运行在不同的操作系统上的.别把他们混淆.DOS程序可以运行在windows上是因为有NTVDM.而你把VC生成的控制台程序放到DOS下只会得到!?This program cannot be run in DOS mode.2:如果你是用标准库编写的话,代码应该没多大差异的.但执行时调用库方式却差天共地.前者通过API模拟出一个执行环境,后者是直接调用WIN32 API的.3:TC里面编写程序确实是可以调用中断,可是这个中断不是直接执行的.是NTVDM提供的.在NT的世界里.ring3不太可能直接调用中断的.4:VC6(早期版本就不知道了)不能编写DOS程序,只能编写控制台程序,注意,这只不过是Win32程序只使用控制台这个标准输入输出而已.控制台程序照样可以弹出个窗口,也可以有消息循环,窗口程序照样可以有个控制台. 

来源:https://www.tulaoshi.com/n/20160219/1598773.html

延伸阅读
标签: windows
删除软件 你下载的软件不兼容或错误所造成的。你下载的软件为64位,不支持在32位的系统上运行。 重新下载软件 你下载的软件在下载途中损坏。此问题,是由于软件错误或不兼容所造成的,一般在换系统的时候都会这样。不管是XP还是WIN7,都容易出错。其他软件即使换了系统,不重新安装照常能用。要重装的,也会提示说重装,只有个别软件...
      Author: void#ph4nt0m.org */ // 编译器 cl.exe(Visual C++ 6.0) // 没有做任何优化情况下,编译大小为:16K // 编译优化后: 1K (用16进制编辑器把尾部的0x00去掉: 712bytes) #include windows.h #pragma comment(lib,"kernel32.lib") // 作用: 指定节对齐为512字节 #pragma comment(linker, "/align:512") //...
做一个.rc的文件,里面是文本格式,内容如下:   资源名 类型     资源在windows中的文件件 mycur1 cursor 28.cur //加入光标 mycur2 cursor 29.cur //加入光标 mycur3 cursor 30.cur //加入光标 myIco1 ICON ico.ICO //加入图标 bmp1  Bitmap 1.bmp bmp2  Bitmap ...
CNTService 类 当我创建 C++ 对象封装 Windows 函数时,我尝试为我封装的每个 Windows API 除了创建成员函数外,还做一些别的工作,我尝试让对象更容易使用,降低实现特定项目所需的代码行数。因此我的对象是基于我想让这个对象做什么?而不是Windows 用这些 APIs 做什么? CNTService 类包含一些用来解析命令行的成员函数,为了处理服...
标签: 电脑入门
有用户在双击安装某个软件时,经常会弹出XXX.EXE不是有效Win32应用程序的错误提示。 当然,有时即使我们双击运行任意一个EXE格式的可执行文件,同样会出现这样的错误提示。那么如何才能够避免系统出现不是有效Win32应用程序问题呢。 如果仅仅是在安装某些软件时,才弹出错误信息,这说明我们安装的程序包不完整或者是程序安装不成功,此时可...

经验教程

88

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部