终于明白了tc编译的dos程序和vc编译的win32控制台程序的区别

所属分类: 实用技巧 / 应用技巧 阅读数: 903
收藏 0 赞 0 分享
它们有着本质的区别: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程序只使用控制台这个标准输入输出而已.控制台程序照样可以弹出个窗口,也可以有消息循环,窗口程序照样可以有个控制台. 

更多精彩内容其他人还在看

解决最近Hotmail无法登陆,hotmail不能登陆的最新解决方法总结

解决最近Hotmail无法登陆,hotmail不能登陆的最新解决方法总结
收藏 0 赞 0 分享

用nero刻录可启动功能的光盘而且光盘不是iso格式的

用nero刻录可启动功能的光盘而且光盘不是iso格式的
收藏 0 赞 0 分享

上海居住证办理 续办上海居住证全攻略

上海居住证办理 续办上海居住证全攻略
收藏 0 赞 0 分享

可以用IE轻松远程控制对方电脑的软件 motelyAnywhere 安装使用图文教程

可以用IE轻松远程控制对方电脑的软件 motelyAnywhere 安装使用图文教程
收藏 0 赞 0 分享

完美解决Persits.Jpeg.1 错误 ''800a0001''

完美解决Persits.Jpeg.1 错误 ''800a0001''
收藏 0 赞 0 分享

真正解决win2003的“由于下列错误,Parallel port driver 服务启动失败的解决方法”

真正解决win2003的“由于下列错误,Parallel port driver 服务启动失败的解决方法”
收藏 0 赞 0 分享

ftp上传时数据Socket错误连接超时的解决方法

ftp上传时数据Socket错误连接超时的解决方法
收藏 0 赞 0 分享

解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法

解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法
收藏 0 赞 0 分享

让星空极速彻底下岗的图文教程

让星空极速彻底下岗的图文教程
收藏 0 赞 0 分享

打开扩展名为ac.$的AutoCAD的临时文件的方法

打开扩展名为ac.$的AutoCAD的临时文件的方法
收藏 0 赞 0 分享
查看更多