您的位置:首页 > 其它

【转】VS2008 入门基本操作

2013-05-11 08:00 267 查看
VS2008 入门操作

更新日期:2011-7-31

测试环境:VS2008+WinXP

━━━━━━━━━━━━━━━━━━━━━━━━

这段时间正式开始使用VS2008。从VC6过度到VS2008还真的有点不习惯。

下面列出一些常用操作,希望有所帮助。

以下只是个入门的初级教程,高手请跳过

列出一些常规的操作:

━━━━━━━━━━━━━━━━━━━━━━━━

把默认的Unicode工程改回ANSI工程

设置快捷键

修改资源ID

项目依赖(对于含有dll的工程,项目依赖是很有用的,每次都可以编译所以项目)

打开资源(对话框或控件)

去除编译时字符串安全警告

删除一个消息映射

设置Code Generation里面的Runtime Library

设置生成的程序文件名

设置输出路径 (放置编译链接生成的中间文件的文件夹)

设置预定义宏

设置编辑器字体颜色

添加外部工具(程序)

添加资源

为类添加消息映射

解决VS2008找不到MFC90d.dll错误

复制项目资源(对话框资源)到另外一个项目

设置要包含的头文件和库文件

自己写了个VS插件,实现一些简单的功能

━━━━━━━━━━━━━━━━━━━━━━━━

(1)在VC6的代码编辑窗口最左边栏点击时,会选择文本,但来到VS就变成添加断点了。所以插件实现

了点击代码编辑窗口左边栏时选择文本的功能。

(2)实现源文件和头文件之间的快速切换 (操作方法-》在左边栏点击右键弹出菜单)

(3)跳转到上一次鼠标点击的行号 (这个未能实现,效果不好)

(4)注释掉代码 (为添加/* */,如果已经有/* */,就去掉。操作方法-》在左边栏点击右键弹出菜单)

(5)双击标签页可以关掉窗口

上午花了时间把插件的资料整理好了,希望对你有所帮助(2011-7-31)

下载插件源代码和学习资料:http://hi.baidu.com/qiujiejia/blog/item/6f3b27fc9f703f98b901a0c5.html

把默认的Unicode工程改回ANSI工程

━━━━━━━━━━━━━━━━━━━━━━━━

VS2008新建的工程默认是Unicode的,

所以我们如果把VC的工程代码复制后放到VS2008编译就可能会出错。

如果我们需要改回ANSI,需要做以下设置

(1)相应编译宏的设定。如果使用Unicode字符集,需要定义预编译宏UNICODE和

_UNICODE两个;而使用ANSI字符集,不需要这个。具体修改方式为:ALT+F7打开工程选项,选择

C++栏目,再选择里头的PreProcessor栏目,在里头的PreProcessor defines中去掉默认的

Unicode和_UNICODE的定义。注意,在此栏目中我们并没有看到对应的两个定义,这个是通过继承

而来了,只要我们不要勾那个"inherit from parent..."即可。注意,设置完毕之后,另外需要手动将

_AFXDLL宏和宏_MBCS 用分号添加到PreProcessor defines。

(2)到此工作完成一半,此时编译提示link出错,找不到入口函数(实际上入口函数不对)。这

里需要修改入口函数(其实这个是受原作者启发的)。修改方式:ALT+F7打开工程选项,选择

Link栏目,然后选择Advanced,第一个属性就是Entry Point,修改为WinMainCRTStartup即

可。好像Unicode版本是wWinMainCRTStartup。

(3)注意每次Alt+F7弹出设置对话框要把debug版本和release版本都设置。





去除编译时字符串安全警告

当我们把旧的VC工程转换VS2008工程后编译,常常会出现一大堆编译警告,

如:warning C4996: '_itoa': This function or variable may be unsafe. Consider using

_itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

方法一:你也可以使用下面的小工具快速添加_CRT_SECURE_NO_WARNINGS,只需要将工程下的“.vcproj ”拖动

到程序的界面即可。下载:ModifyProjectFile.exe 源代码:ChangeSln_SourceCode.zip
(请不要使用下载工具,否则可能出错)

方法二:如下:

━━━━━━━━━━━━━━━━━━━━━━━━



设置快捷键

VS的添加快捷键乖乖的,要自己输入命令。开始弄了好久都没有成功。

━━━━━━━━━━━━━━━━━━━━━━━━



修改资源ID

━━━━━━━━━━━━━━━━━━━━━━━━



项目依赖(对于含有dll的工程,项目依赖是很有用的,每次都可以编译所以项目)

━━━━━━━━━━━━━━━━━━━━━━━━



打开资源(对话框或控件)

━━━━━━━━━━━━━━━━━━━━━━━━



删除一个消息映射

这好像退步了,在VC里只要简单的右键删除函数就可以了,而在VS2008里要删除一个函数或消息映射却

很麻烦。删除函数好像没有什么好方法,手动删除吧。

(以后看插件能否实现快速删除一个函数的功能)

━━━━━━━━━━━━━━━━━━━━━━━━



设置Code Generation里面的Runtime Library

━━━━━━━━━━━━━━━━━━━━━━━━



设置生成的程序文件名

━━━━━━━━━━━━━━━━━━━━━━━━



设置输出路径 (放置编译链接生成的中间文件的文件夹)

━━━━━━━━━━━━━━━━━━━━━━━━



设置需要包含的头文件和库文件

━━━━━━━━━━━━━━━━━━━━━━━━



设置预定义宏

━━━━━━━━━━━━━━━━━━━━━━━━



设置编辑器字体颜色

━━━━━━━━━━━━━━━━━━━━━━━━



添加外部工具(程序)

━━━━━━━━━━━━━━━━━━━━━━━━



添加资源

━━━━━━━━━━━━━━━━━━━━━━━━



为类添加消息映射

━━━━━━━━━━━━━━━━━━━━━━━━



解决VS2008找不到MFC90d.dll错误(资料来自网络)

━━━━━━━━━━━━━━━━━━━━━━━━

VS 2005/VS 2008在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而在FAT32文件系统中,在处理清单文件阶段,当增量链接时不能完成清单文件的更新(默认情况下),于是造成清单文件嵌入失败,从而使该exe文件运行时没有相应的清单文件而运行失败并提示如上错误。

解决方案很多,列举如下:

1. 由于这是在链接动态运行库出现的问题,所以你可以选择代码生成的连接方式为 /MTd 而非 /MDd ,不用这些DLL文件从而避免问题的出现。该方法有一个很显然的缺点:适用范围有限,不推荐该方法。

注:/MT /MTD MD /MDD 之间的关系可以参见 VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结;另外如果使用/MT 或者/MTD 那么生成的文件的尺寸基本上是使用/MD 或者/MDD的10倍大小

2. 既然跟FAT32系统有关,那么我们可以选择在NTFS文件系统中开发从而避免该问题,此方法同上,也是采用的回避问题的方式,不提倡。(我个人推荐使用这种方法)

3. 该方法仍与FAT32有关:在项目的“属性|配置属性|清单工具|常规(Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library)”中的“使用FAT32解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。该方法是唯一真正针对问题所在而提出的解决方法,使清单工具可以正确更新。(此方法是官方解决方法,也比较方便,推荐)

4. 既然问题是在更新嵌入的清单文件时发生的,由于FAT32的原因而未能更新嵌入的清单文件,于是我们有如下两种解决方法:

(1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。

(2)不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默认情况下,其文件名为exe文件的全名加上“.manifest”),避免了嵌入清单文件可能失败的问题。在程序运行时,会用到该清单文件。显然,这种方式使可执行程序产生了更多的外部依赖,不推荐。

另外,还有一个不能称为方法的土办法:每次Build前手动删除*.ilk文件(增量链接文件)(当然可以在项目属性中写入删除命令,使其自动执行),不推荐该土办法。

最后,总结一下:

1. 此问题只在特定条件下才会出现:在FAT32文件系统中编译、默认设置(增量模式、不启用FAT32解决方案、嵌入清单文件)、非第一次生成可执行文件文件(即在增量连接、更新清单文件时)。(注意)

2. 解决方案1和4.1方便实用,推荐使用。

ps:我个人认为解决这个问题的最好方法就是使用vc2005/vc2008的时候,在ntfs文件系统上进行开发(也就是第2种方法)。当前的绝大多数软件在ntfs文件系统都能够正常的运行(即便是dos类的工具也能在ntfs文件系统上良好的运行),为什么还要死抱着fat/fat32文件系统不放呢?

另外要注意一个概念问题,“VC2008下提示找不到MSVCP90D.dll”这是属于开发问题,是由于windows文件系统的bug(fat32的bug),导致vc2005/vc2008开发工具编译出来的程序不能正常的运行。

复制项目资源(对话框资源)到另外一个项目(资料来自网络)

━━━━━━━━━━━━━━━━━━━━━━━━

若要将对话框资源从 Visual c + +.net 或 Visual c + + 2005年项目的资源文件复制到另一个 Visual c + +.net 或 Visual c + + 2005年项目的资源文件,请按照下列步骤操作。

注意:资源文件具有.rc 扩展名。

1、启动 Visual Studio.net 或 Visual Studio 2005。

2、在 文件 菜单上指向 打开,然后单击 文件。

3、找到源资源文件。

4、单击资源文件,然后单击打开该文件的 打开。

5、为目标资源文件,请再执行步骤 2 到 4。

6、若要切换到源资源文件,单击包含此文件的文件名称选项卡。

7、展开文件夹具有与源资源文件的文件名相同的名称。

8、展开 对话框 文件夹。

9、用鼠标右键单击您要复制,对话框资源,然后单击 复制。

10、若要切换到目标资源文件,单击包含此文件的文件名称选项卡。

11、用鼠标右键单击具有与目标的资源文件的文件名相同的名称的文件夹,然后单击粘贴。 对话框资源将显示在目标资源12、文件中的 对话框 文件夹中。

13、请按 CTRL + SHIFT + S 键组合,以保存所有文件。

14、在 “文件” 菜单上单击 “关闭”解决方案以关闭解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: