关于Windows下程序执行的说明

估计有很多人首次都是通过Windows(微软的操作系统)来使用计算机的,Windows的设计导致很多人认为所有程序只要双击一下就可以被正确执行了,所以一大堆初学程序设计的童鞋就会遇到些疑问:

为什么双击之后,程序没有正确执行?

程序怎么黑一下就没有了?

程序怎么跟我说要输入参数?

说清楚这些问题有很多办法。我们从Windows执行程序的方式说起吧。

Windows上程序的执行方式

据我所知(为了不把话说绝),Windows上执行程序主要有两种方式:一种就是双击;一种是通过命令提示符(cmd)来执行。从操作上来讲,前者需要鼠标,后者可以不需要鼠标。至于双击这种方式,估计才接触windows的人都会使用,所以就不说了。后一种方式怎么用?很简单,首先启动cmd,启动的方法可以有几种,我喜欢:Windows+R组合键,在输入框中输入cmd,敲回车,这样不用鼠标。如下图:

启动cmd之后,比如我想启动记事本编辑一个文件名为demo.txt的文件,可以在cmd中输入:notepad demo.txt 然后敲回车。

上面输入的notepad就是记事本的可执行程序的名字,它存在于Windows系统的PATH目录(系统搜索可执行程序的目录)下,demo.txt是传给notepad的一个参数。

我们自己的程序是如何知道程序的执行参数的

知道怎么用命令行,那我的程序怎么知道接受的参数是什么呢?C/C++的main函数的参数就是解决这个问题的。

看下main函数的标准定义:

int main(int argc, char** argv)
{
  return 0;
}

其中第一个参数argc表示的是我在启动程序时传给操作系统的参数个数,例如notepad demo.txt,argc的值就是2。

第二个参数argv存的是参数的值。例如notepad demo.txt 的argv是 {{"notepad"},{"demo.txt"}}。

大家可以再看看这篇博文,或许会理解的更好点。

http://blog.csdn.net/bendanban/article/details/7623209

时间: 2024-12-29 13:21:41

关于Windows下程序执行的说明的相关文章

Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)

Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了Dependency Walker这个小工具.但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了.看得你一脸懵逼: 你很难分清楚:倒底哪些DLL是需要打包的,哪些DLL是系统自带的.而作为打包过程中的一个小步骤,我根

关于windows下程序开发的中文乱码问题小结

笔者遇到的问题背景: windows 下使用notepad++6.7 ,ftp连接远程ubuntu主机,在本地创建远程主机文件,编辑后上传出现中文乱码. 笔者最开始不明白问题出在哪,因为设置了在notepad++中默认使用UTF-8编码格式进行新建文件,但依旧无效. 笔者一步步探索问题: 新建一个文件,写入纯英文html文本后上传至ubuntu主机,vi :set fileencoding显示此时为utf-8编码 上述文件新增几个中文,保存后上传至ubuntu主机,这个时候提示fileencod

转:windows下定时执行备份数据库

上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\Program Files\MySQL\MySQL Server 5.0\data\piaoyi\*.*" D:\db_backup\%date:~0,10%\ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 关于时间参数的参考: %date:~0

Qt5 发布的exe应用程序Windows下无法执行的问题解决方案

本解决方案着重解决报错为: This application has requested the Runtime to terminate it in an unusual way. 的错误. 即: 错误是由于一个Qt5应用程序发布时,要自带一些.dll文件到该exe所在的文件路径当中,比如: 尤其是platforms文件夹,要在Windows系统下运行,必须要加这个文件夹,而且名称必须是platforms,里面应包含:qminimald.dll和qwindowsd.dll 两个文件,这些.dl

Py2exe——将python程序变成windows下可执行的exe

一.安装Py2exe 二.定义一个目录,把你的Python文件放在下面,如为AddFileRandom.py文件 然后新建一个go.py文件,放于相同目录下,内容为: from distutils.core import setup import py2exe setup(console=['AddFileRandom.py' ])       #这里的内容每次都可以修改,根据文件名字的不同 三.在cmd下面直接运行,进入到放置go.py的文件目录下,输入:python go.py py2exe

Windows下批处理执行MySQL脚本文件

转载至http://my.oschina.net/u/660932/blog/117929 一. @echo offSetlocal enabledelayedexpansion::CODER BY Mark_Li POWERD BY iBAT 1.6cd "C:\Program Files\MySQL\MySQL Server 5.5\bin":: 数据库名称 @set db=hrms :: 用户名 @set userName=root :: 密码 @set password= ::

Windows下程序的自删除

能做到自删除的方法很多,最常用的是通过批处理实现自删除. 批处理能够实现运行之后删除自身的能力. 让程序创建批处理,再由批处理删除程序和批处理自身. :loop del "D:\Program File\..." if exist "D:\Program File\..." goto loop del %0 创建.运行批处理文件的所用的函数也有所不同,下面是我个人的示例. 1 #include <Windows.h> 2 #include <std

Windows下安装redis服务

1.Redis本身不支持windows,但是有另外的团队在维护着一个windows下的版本   2.下载地址: https://github.com/MSOpenTech/redis 2.8的版本在源码里面已经不包含windows下的执行文件,都移动到release里面去了,所以点击release去下载.   3.下载解压后   4.安装很简单,Windows Service Documentation.docx有详细说明. 1)安装服务: redis-server --service-inst

Windows下手动安装redis服务

1.Redis本身不支持windows,但是有另外的团队在维护着一个windows下的版本   2.下载地址: https://github.com/MSOpenTech/redis 2.8的版本在源码里面已经不包含windows下的执行文件,都移动到release里面去了,所以点击release去下载.   3.下载解压后   4.安装很简单,Windows Service Documentation.docx有详细说明. 1)安装服务: redis-server --service-inst