VS与VC++6.0项目与工程新手入门

Question:


VS或者VC里的那些工程是怎么回事?怎么使用它们创建并编译C语言或C++代码?还有那些以“#”开头的东西有什么作用?

Answer:


至于安装:

如何在Win10安装VC++6.0 ,如何用VC++6.0新建项目并写代码,以及如何安装VS2017并写代码,参考链接。

至于多文件编译以及为何每次写代码要重建项目:

这里以VC++6.0为例,从新建工程到多文件编译,可以跟着一起动手做一下:


点击文件(F)->新建,或者Ctrl + N

选择工程选项卡,从上到下分别是:ATL COM AppWizardCluster Resource Type WizardCustom AppWizardDatabase ProjectDevStudio Add-in WizardExtended Stored Proc WizardISAPI Extension WizardMakefileMFC ActiveX ControlWizardMFC AppWizard(dll)MFC AppWizard(exe)Utility ProjectWin32 ApplicationWin32 Console ApplicationWin32 Dynamic-Link LibraryWin32 Static Library,(以官方文档为主)简单介绍参考https://zhidao.baidu.com/question/981441449787893859.html

(中途发现一个资源网http://www.icodeguru.com/,嘿嘿嘿)

我们这里选择Win32 Console Application(Win32控制台应用程序),也就是程序后运行的那个黑框框,另外提一句,如果选Win32 Application(Win32应用程序),就是非MFC框架Windows程序,可以参考《Windows程序设计》。

在工程名称里填工程的名字,例如Test,在位置选择想要把代码存储到的位置,默认在C:\Program Files (x86)\Microsoft Visual Studio\MyProjects里

选择空工程即可,然后点完成,再点确定
然后点左侧FileView,再点上面Test files旁边的+号浏览文件

这就是一个项目的骨架了,在VC++6.0里为Source Files(源文件,以后缀名.c或.cpp结尾),Header Files(头文件,以.h结尾),Resource Files(资源文件,初期用不到,不做过多介绍)。


然后Ctrl+N新建,选择文件

这里选择C/C++Header File,程序的头文件,右边选中添加到工程,文件名填以.h结尾的头文件名,位置一般默认本工程目录下即可,如果有需要可以更改到其它位置。

然后Ctrl+N新建,还是选择文件

这里选择C++ Source File,C++源文件(C语言也选这个),然后选上添加到工程,因为是C语言程序,所以文件名以.c结尾,如果是C++程序,以.cpp结尾即可。

创建完后长这样

然后在头文件Test.h里写上程序所需要的头文件即可,每次需要添加的头文件都可以写进这个文件里,例如这样:

头文件一般结构

然后在源程序里写上以下测试代码,只需在源文件里用#include用双引号把刚才的头文件名包含进来即可,如果编译报错,找不到头文件,那么文件名正确后在引号里加入完整路径即可。

比较大小测试程序

然后编译,调试,若没有错误运行这个程序。假设这次代码写完了,需要关闭,

Ctrl+S保存后点击文件->关闭工作空间

然后正常关闭即可,等到再次使用时,打开VC++6.0

Ctrl+O或者点击文件->打开

再查找范围栏里选择之前使用的工程保存的目录,然后文件类型选择工程(.dsp),再选择上次的工程如Test.dsp并双击,(名称就是上次新建的工程名,以.dps结尾),之后文件名栏里就会变成Test,接着打开就好了

条件编译

如果不想使用上次代码,可以在代码开头加上#if 0,在结尾加上#endif,如图中所示,在#if 0 和 #endif 中间的代码,编译器在预编译阶段将会忽略,不会被编译。

测试

接着就可以在#if 0 和#endif 以外的区域编写代码了,例如#if 0以上区域,#endif以下区域,之后在编译运行即可。每次需要丢弃的代码,既可以注释掉,也可以用一对#if 0和#endif 条件编译忽略掉,也可以全选,删掉(虽然不建议这么做,毕竟现在写的代码以后可能还会用到),当然以上可以都不选,而是在现有的代码基础上再添加内容。

至于多文件联合编译

以下Test.c与Test.h中的无关内容都与上面那些图一样注释掉了,没有大改动。

自定义头文件max.h

一般在这里定义一些自定义函数需要用到的宏,以及自定义函数的定义,例如本例中的Max()函数的定义,函数的定义形参一般不用给出形参名,只需指明类型即可,当然指定了形参名也没错。

函数定义源文件max.c

在max.c里写入函数的定义,同时引入自己的头文件max.h,同时由于max.h里引入了Test.h,所以这里也就相当于引入了max.h和Test.h中的内容。

测试源文件main.c

可以在一个单独的源文件里指定程序的入口main()函数,例如本例中的main.c,同时也要包含进用到的头文件,例如本例中的max.h中定义的Max()函数,然后编译,调试,运行即可。(在VC++6.0里把max.h中的函数声明注释掉也可运行,但在VS里跨文件,必须给出函数声明)

至于以#开头的东西,一些常用的#开头

#define   宏名   宏内容  

宏定义,在编译阶段,程序中除双引号中外,出现的宏名都被宏内容所替换

#pragma once              

保证文件只被编译器编译一次

#ifdef  宏名

#else

#endif

在这里解释为如果宏名被定义,则编译#ifdef 到#else中的内容,如果未定义,则编译#else到#endif中的内容。也可以不使用#else。

#if 条件

#endif

和if-else结构一样,如果条件为真,则编译之间的内容

#if ,#ifdef ,#ifndef等更详细说明与示例

VC++6.0环境配置


工具->选项
目录

这里包含可执行文件、Include files、Library files、Source files四个内容,对我们有用的一般是Include files和Library files

第一个红框里的内容分别是新建、删除、上移、下移
与上图一样

Include files目录为用#include<>包含进的头文件目录,Library files目录为库文件目录,一般在预编译阶段,编译器就会按这两个目录路径栏里指定的目录从上到下依次查找,直到找到引入的头文件或库文件,否则就会报找不到头文件或缺失符号错误。

如果下载安装了最新的SDK,或者其它头文件或库文件,就需要在这里指明安装路径。

写在最后

VC++6.0的入门到这里就告一段落,如果你觉得这个IDE界面太丑,那么可以试试VS2017之类更强大,界面更加友好的,但也特别臃肿的IDE。

下一步

如果这些都掌握了,并且对开发出自己的安全工具很有兴趣,可以试试《C++黑客编程揭秘与防范》,这里能够带你入门,密码是协会名缩写

如果想更进一步,那么推荐这本书《彻底研究 黑客编程技术揭秘与攻防实战》密码链接,同样,密码还是协会名缩写。加密的目的不是为了阻止下载,而是给协会内部一些便利与宣传

至于想写出更加强大的程序,可以试试《大话数据结构》,这里面的多种数据结构经常会用到

如果还好奇的话,国内外各大论坛总有一个,是你想要的菜

什么?你说Linux啊,布星布星,作为新手,要有新手的觉悟,知道这么多干嘛(*Φ皿Φ*),想挂科啊,还是闲得没事干啊

emmmmm,如果实在好奇的紧,可以试试《鸟哥的Linux私房菜》,然后想干嘛干嘛去

什么?觉得还不够,满足不了你的胃口?那么“Linux网络编程大礼包”送给你

然后看完了还不知道干什么?那来和我交流交流经验,分享分享心得,顺便争得面红耳赤,然后一起写出个什么好玩且有趣的东西来

不知道怎么联系我?可以在评论区里留下联系方式,说不定我会过来看。当然了,最大的可能是一段时间后我忘了这里的密码还有链接QAQ

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,400评论 1 45
  • 关于跑步跑步是一门很大的学问,跑步的目的决定了跑步的时间及跑步的速度。比如说你的目的是简肥,那么跑步必须持续地跑。...
    scarle阅读 175评论 2 1
  • #输入必有输出# 不愧是最后一节课,期间一波三折。 提早跑完步,守在电脑面前等着开课,竟然连不上网络了,打电话给售...
    Marks阅读 805评论 0 1