估计有很多人首次都是通过Windows(微软的操作系统)来使用计算机的,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

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

  1. Windows下程序打包发布时的小技巧

    一.背景 Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作 ...

  2. C#中级-通过注册表读取Windows Service程序执行路径

    一.前言        假设我们的C#解决方案中有多个程序应用,如:Web应用.控制台程序.WPF程序应用和Windows服务应用. 那么这些非Windows Service应用程序怎么在代码中找到W ...

  3. 关于Windows下程序运行的说明

    预计有非常多人首次都是通过Windows(微软的操作系统)来使用计算机的.Windows的设计导致非常多人觉得全部程序仅仅要双击一下就能够被正确运行了,所以一大堆初学程序设计的童鞋就会遇到些疑问: 为 ...

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

    Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...

  5. Windows下怎么执行shell脚本

    1.在windows下想要执行shell脚本,需要使用到"Git Bash",所以我们需要先安装Git. 2.查看Git环境变量是否配置,没有配置需要配置(我这里安装Git时自动配 ...

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

    上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\ ...

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

    本解决方案着重解决报错为: This application has requested the Runtime to terminate it in an unusual way. 的错误. 即: ...

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

    一.安装Py2exe 二.定义一个目录,把你的Python文件放在下面,如为AddFileRandom.py文件 然后新建一个go.py文件,放于相同目录下,内容为: from distutils.c ...

  9. 使用PyInstaller将.py文件打包并生成Windows下可执行的.exe文件

    最近要使用Qt写一个简单的GUI程序,因此使用了PyQt5来加快开发,使用PyQt5生成可执行的程序时,在Windows操作系统下可以使用pyinstaller库将.py文件及其相关依赖生成为.exe ...

随机推荐

  1. 【linux之crontab,启动】

    一.计划任务 atd at命令发布的任务计划 一次性的任务计划 at time ctrl+d 提交 time: 1.绝对时间:12:00 2.相对时间:+8 3.模糊时间:noon midnight ...

  2. [ Java学习基础 ] String、StringBuffer、StringBuilder比较学习

    首先讲获得字符串对象的方式有两种,一种是直接使用字符串常量,一种是使用new关键字创建,但它们之间是有一些区别,如下运行实例: String s1 = new String("Hello&q ...

  3. [COGS 2258][HZOI 2015]复仇的序幕曲

    Description 你还梦不梦痛不痛,回忆这么重你怎么背得动 ----序言 当年的战火硝烟已经渐渐远去,可仇恨却在阿凯蒂王子的心中越来越深 他的叔父三年前谋权篡位,逼宫杀死了他的父王,用铁血手腕平 ...

  4. HDU 3094 A tree game

    Problem Description Alice and Bob want to play an interesting game on a tree.Given is a tree on N ve ...

  5. 【线段树】【BZOJ1798】【AHOI2009】维护序列

    还是那个学弟@lher出的丧题之一. 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1798 题意简析:就是题目啊... 解题思路:显然是线段树 ...

  6. bzoj 3751: [NOIP2014]解方程

    Description 已知多项式方程: a0+a1x+a2x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). 解题报告: 这题比较诡,看到高精度做不了,就要想到 ...

  7. [NOI2012]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 一天一套noi 简直了.... 昨天勉强做完了noi2011 今天教练又丢出来一套noi2012  去掉提答还有5题 勉强做了3题  先占个坑 ...

  8. kafka快速入门

    一.kafka简介 kafka,ActiveMQ,RabbitMQ是当今最流行的分布式消息中间件,其中kafka在性能及吞吐量方面是三者中的佼佼者,不过最近查阅官网时,官方与它的定义为一个分布式流媒体 ...

  9. const的一些用法和理解

    首先先说一下const常量的用处,我们知道宏定义#define是没有数据类型的,编译器在编译的时候,不会对宏常量进行类型检查,只进行简单的字符串替换,字符串替换时极易产生意想不到的错误,所以这个时候, ...

  10. 螺旋打印2D数组

    //一破题付出血的代价 多思考!public static void offer(int [][]a){ ,right=a.length-,low=,high=a[].length-; while(l ...