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

它们有着本质的区别: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程序只使用控制台这个标准输入输出而已.控制台程序照样可以弹出个窗口,也可以有消息循环,窗口程序照样可以有个控制台. 

时间: 2024-07-31 11:41:07

终于明白了tc编译的dos程序和vc编译的win32控制台程序的区别_应用技巧的相关文章

visual studio-VS2015中如何添加WIN32控制台程序?添加项目里都没有WIN32这个选项.

问题描述 VS2015中如何添加WIN32控制台程序?添加项目里都没有WIN32这个选项. 解决方案 http://blogs.msdn.com/b/c/archive/2015/07/28/c-visual-studio-2015.aspx 照此图安装 解决方案二: 解决方案三: Win32控制台程序的定时器实现 解决方案四: 你安装VS的时候选中了所有选项没.用安装包添加安装一下

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

它们有着本质的区别:1:一个是16的DOS程序,一个是标准的32的Windows应用程序.前者依然受着64KB内存分段约束,后者无忧无虑地使用着4GB内存地址空间.它们本来就是运行在不同的操作系统上的.别把他们混淆.DOS程序可以运行在windows上是因为有NTVDM.而你把VC生成的控制台程序放到DOS下只会得到!?This program cannot be run in DOS mode.2:如果你是用标准库编写的话,代码应该没多大差异的.但执行时调用库方式却差天共地.前者通过API模拟

asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法_实用技巧

问题描述: 编写asp.net程序,当编译调试比较频繁的时候,很容易经常地出现访问被拒绝.形如: 分析器错误信息: 访问被拒绝:"Microsoft.Web.UI.WebControls".源错误: 行 197: <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>行 198: <add as

vc 写win32控制台程序时如何隐藏自身的dos界面

    加入如下代码即可 #pragma comment(linker,  "/subsystem:windows /entry:mainCRTStartup")  // 设置入口地址

网站程序员如何应对web标准第1/2页_相关技巧

作者:jxdawei jxdawei的blog:http://www.iwcn.net/ 本文讨论的是在web标准普及的形势下,网站程序员的定位以及如何与设计师配合开发符合web标准的网站项目.本文适合的读者是传统TABLE布局下分工不是非常明晰的程序员. 1:学习web标准,让你的工作变得更加简单. web标准是大势所趋,所以作为网站程序员.你必须洗脑,必须去学习web标准.去重新认识html标签,去了解如何让程序输出页面需要的代码. 比如: 上边是美工出来的效果图,下边是符合标准的程序代码:

编写的vs2005水晶报表程序在vs2008下正常使用的一些实现方法_实用技巧

一.没有安装部署好水晶报表:(vs2008安装后,不等于安装了vs2008水晶报表) 二.源程序中:VS2008和v2005的水晶报表版本号不对:vs2008的版本号是:Version=10.5.3700.0 ,造成水晶报表无法使用: 三.有时出现找不到水晶报表相对应的命名空间错误:一般是using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; 这两个命名空间引用找不到: 解决方法: 一.VS2008

ASP程序中使用断开的数据记录集的代码_应用技巧

因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称为断开的记录集. 下面我们就通过一个实例来说明这种技术的使用方法(NorthWind.mdb是Microsoft Access97自带的一个数据库,文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到): 复制代码 代码如下: <% @LANGUAGE = VBScript %> <!--

cmdexe错误-visual studio2012 直接运行控制台程序打不开cmd.exe

问题描述 visual studio2012 直接运行控制台程序打不开cmd.exe 就最简单的win32控制台程序,调试时可以打开,但是会报这些: "ConsoleApplication1.exe"(Win32): 已加载"E:VSProjectsConsoleApplication1DebugConsoleApplication1.exe".已加载符号. "ConsoleApplication1.exe"(Win32): 已加载"C

java软件安装问题-java程序能通过编译却运行成功

问题描述 java程序能通过编译却运行成功 public class helloworld { public static void main(String[] args) { System.out.println("helloworld!"); } } 我是一个初学者,之前卸载了这个软件 现在又重新安装后,完成环境配置: 在dos里通过编译却不能运行,好像是环境配置出来问题 但是由于配置次数太多搞得很凌乱不知道哪出错了, 希望大家可以帮帮我的忙 今天就想配置好,尝试着用java软件.