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模拟出一个执行环境,后者是直接调用WIN32 API的.3:TC里面编写程序确实是可以调用中断,可是这个中断不是直接执行的.是NTVDM提供的.在NT的世界里.ring3不太可能直接调用中断的.4:VC6(早期版本就不知道了)不能编写DOS程序,只能编写控制台程序,注意,这只不过是Win32程序只使用控制台这个标准输入输出而已.控制台程序照样可以弹出个窗口,也可以有消息循环,窗口程序照样可以有个控制台. 

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

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

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控制台程序的区别_应用技巧

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

VC获取当前路径及程序名的实现代码_C 语言

一.获取当前运行目录的绝对路径 1.使用GetCurrentDirectory函数 假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数 char pBuf[MAX_PATH]; GetCurrentDirectory(MAX_PATH,pBuf); pBuf="D:\Test" 但是如果使用CFileDialog.CFile::Open等函数后,设置不当则会导致再次获取当前路径值改变.所以,如要避免当前路径改变,如果使用CFileDialog,

C++程序的执行顺序结构以及关系和逻辑运算符讲解_C 语言

C++顺序结构程序[例]求一元二次方程式ax2+bx+c=0的根.a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac≥0.根据求x1,x2的算法.它可以编写出以下C++程序: #include <iostream> #include <cmath> //由于程序要用到数学函数sqrt,故应包含头文件cmath using namespace std; int main( ) { float a,b,c,x1,x2; cin>>a>>b>>

VC下实现fopen支持中文的方法_C 语言

VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件. 代码如下: bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode) { DWORD dwUnicodeLen; //转换后Unicode的长度 TCHAR *pwText; //保存Unicode的指针 // wchar_t* strUnic

VC实现批量删除指定文件的方法_C 语言

本文所述实例主要实现了删除某个盘符下指定位置的文件,可以是TXT.doc.jpeg等格式,只要选定格式后,再定义好盘符,即可一键删除所有指定类型的文件.再次提示删除前请确认,且删除后不可恢复. 以下是最主要的核心代码,其它代码读者可以自己添加. SHFILEINFO shInfo; memset(&shInfo,0,sizeof(SHFILEINFO)); HIMAGELIST hImage = (HIMAGELIST)SHGetFileInfo("C:\\",0,&s

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

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

VC++植物大战僵尸中文版修改器实现代码_C 语言

本文实例讲述了VC++植物大战僵尸中文版修改器实现代码.分享给大家供大家参考.具体分析如下: 这是很简单的一个辅助工具,关键是游戏数据的分析,实现了两个功能,无限阳光和无冷却.特别注意的一下,如果用VS2008编译的话,调试的时候是正常的,但编译后功能就会失效,这是因为OpenProcess权限的问题,需要提权,在VC6下是正常的. void CzhiwuDlg::OnBnClickedButton1() { //无限阳光代码 HWND hJubing; DWORD lID; DWORD bas

VC++获得当前进程运行目录的方法_C 语言

本文实例讲述了VC++获得当前进程运行目录的方法,分享给大家供大家参考.具体实现方法如下: 该实例主要通过利用windows API获得,具体代码如下:   复制代码 代码如下: CString GetAppPath() {   CString strAppPath;  // 保存结果   TCHAR szModuleFileName[MAX_PATH]; // 全路径名   TCHAR drive[_MAX_DRIVE];  // 盘符名称,比如说C盘啊,D盘啊   TCHAR dir[_MA