Visual Studio使用备注

文章目录
  1. 1. 编译器常用插件
  2. 2. 常用快捷键
  3. 3. Vc6使用方式
  4. 4. MSDN查询
  5. 5. 函数注释
  6. 6. Vc6编译程序获得主动获取UAC
  7. 7. 在Visual Studio项目中正确添加汇编代码
  8. 8. 通过修改程序解决win7下应用程序兼容性助手弹出(具体操作可以看Vc6编译程序获得主动获取UAC)
  9. 9. 在vs中使用命令行
  10. 10. 如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件原文
  11. 11. 更改代码后编译出的程序还是没改变
  12. 12. 避免让编译器泄漏个人信息
  13. 13. 嵌入manifests文件避免找不到dll
  14. 14. 快速配置编译环境
  15. 15. Win8.1/Win10使用vc6崩溃解决方案
  16. 16. VC6调试运行程序,中断调试无法退出
  17. 17. 一些其他很爽的功能
  18. 18. error : Unknown or unsupported property value (Windows10) for TargetVersion
  19. 19. 英文版的VC6某一天突然显示中文乱码了
  20. 20. 也许可以让你不再使用vc6.0的方法
  21. 21. 更多技巧请看这里

这里添加一点别人写的为什么还使用vc6的原因,描述比较清楚
http://blog.csdn.net/weolar/article/details/52456886

1
2
3
4
5
6
1、可以无视VS2015的MD版本需要的那一堆api-xxxx-xxx的dll了。那堆玩意有几十个,恶心的要死。
2、可以不用管manifest的问题。这东西巨恶心,有一个没设置好,就是各种加载不了。关键是本机没问题,
说不定客户机器上哪里就不对了。
3、小巧。vc6的是msvcp60.dll和mscrt.dll。这东西全系列windows都自带了,非常爽,这意味着你可以省
下MT的那堆额外的size了。其实windows的
所有dll基本都是用这个两个来运行的,等于说windows自己用的很爽,但就是没告诉你怎么用····

平时用的最多编译器就是Visual Studio,总的来说好用、强大、比较耗内存。但是由于各个编译器都要用所以了解一些编译器技巧能够大大提高效率(有个好电脑也比较重要,做好是ssd的 哈哈)

编译器常用插件

vc6.0虽然很想抛弃,几十年前的东西了但是由于要考虑到编写的程序能够比较完美的在各个平台运行所以还是得用。安装最好安装英语版的,中文翻译有点问题。平时使用推荐vs2008比较小巧好用,后面的插件Visual Assist X各个版本通杀

常用快捷键

注:各个版本有些不同,但是都可以自己设置。路径一般为 工具–选项–环境–键盘
调试并运行 F5
不调试直接运行 ctrl+F5
停止调试 shift+F5
单步不进入 F10
单步进入 F11
加标签 ctr+F2/ctrl+k ctrl+k
切换标签 F2/
转到定义/声明 F12/ctrl+F12
帮助转到msdn F1
块注释/取消块注释 ctrl+c/ctrl+u
格式化代码 alt+f8/ctrl+k,ctrl+f
矩形框选择 鼠标选择的时候+alt
行复制/剪切 直接ctrl+c/ctrl+v
向后/前定位 ctrl+- /ctrl+shift+-

Visual Assist X 快捷键
Shift+Alt+F Find References 查找引用
Shift+Alt+S FindSynbolDialog 打开查找符号对话框
Alt+G GotoImplementation 调到实现
Alt+M ListMethodsInCurrentFile
Alt+Left Arrow NavigateBack 后台
Alt+O OpenCurrespondingFile .h/.cpp切换
Shift+Alt+O OpenFileInSolutionDialog 打开解决方案文件对话框
Ctrl+Shift+V Parse 弹出最近10个copy的内容菜单
Shift+Alt+Q RefactorContextMenu 弹出重构菜单
Shift+Alt+C RefactorCreateFromUsage
Shift+Alt+R RefactorRename 改名
Alt+Down Arraw ScopeNext
Alt+Up Arraw ScopePrevious

Vc6使用方式

  • vc6编译unicode:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,加上_UNICODE,UNICODE。(我一般就改这个就直接可以了)
  • vc6报错,缺头文件、lib。先把Windows Server 2003 R2 Platform SDK安上,然后用tools下的相应平台工具cmd打开vc6,这样就设置好了相应的环境变量使用的是sdk的头及库文件比较完整,如果还是缺就直接添加相应的lib,比如说mfc42u.lib
  • vc6编译出64位程序,和上面一条相似可以使用sdk工具打开vc6,也可以使用如vs2010 toos下的Visual Studio 64位兼容工具,具体设置可以看这里

##编译器常见选项及可能出现的问题

  • 安装了多个版本vs,关于设置那个编译器默认程序打开sln文件,一般正常情况下默认程序都是VSLauncher.exe能够自动分辨sln文件的编译器版本,如果默认被更改了直接重设默认就可以了我的路径是C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VSLauncher.exe

MSDN查询

  • 新的vs一般可以直接选中某个要查询的api结构体然后直接F1就打开了相关页面,可以参考MSDN查询技巧

函数注释

Visual Studio设置代码注释(包括作者版本信息)
在win7上有可能出现的问题及解决方案123
这里在win7上可能会出现vs宏不能运行的问题,主要参考上面的3个。必须检查两个地方

  • vsmsvr.exe.config 文件中的宏运行开启没有,参考3
  • 由于MS14-009补丁导致的宏不能运行,参考1、2

Vc6编译程序获得主动获取UAC

VC/MFC编程弹出UAC窗口

在Visual Studio项目中正确添加汇编代码

在Visual Studio项目中正确添加汇编代码

通过修改程序解决win7下应用程序兼容性助手弹出(具体操作可以看Vc6编译程序获得主动获取UAC)

通过修改程序解决win7下应用程序兼容性助手弹出

在vs中使用命令行

在vs中使用命令行

如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件原文

  • 将平台工具集选择为”Visual Studio 2013 - Windows XP (v120_xp)”。
  • 将运行库选择为 【多线程 /MT 】或【多线程调试 /MTd】。
  • 当然如果使用了MFC,同理的要设置【在静态库中使用MFC】

更改代码后编译出的程序还是没改变

  • 编译程序生成路径找错了
  • 或则你复制了工程然后改的代码是原复制位置的但是生成的工程是新的导致你生成的程序还是未改变的,特别是vc6不注意你不会发现的还以为是编译器的问题。。。不要问我是怎么知道的
  • 再次更新,编译器确实有可能出现问题 特别是复制工程后。。。。。。。。

避免让编译器泄漏个人信息

各种编译器有哪些泄露开发者隐私的”后门”?

嵌入manifests文件避免找不到dll

vc编译选项嵌入.manifest文件

快速配置编译环境

这里

Win8.1/Win10使用vc6崩溃解决方案

VC6.0在win 8.1中的安装使用

VC6调试运行程序,中断调试无法退出

Windows 7 X64位平台下,VC6调试运行程序,中断调试无法退出

一些其他很爽的功能

  • watch里面输入$err,hr 直接看Windows的LastError
  • watch里面输入uMsg,wm 直接看Windows的消息的名称(uMsg为消息变量)
  • CMake/Qmake/GYP
    Visual Studio调试小技巧

error : Unknown or unsupported property value (Windows10) for TargetVersion

错误 1 error : Unknown or unsupported property value (Windows10) for TargetVersion C:\Program Files (x86)\Windows Kits\8.1\build\WindowsDriver.common.targets 77 5 regfltr
在google搜了一大圈找到几个类似的但都没有有效答案http://stackoverflow.com/questions/23300357/windowsdriver-common-targets-error,只有自己动手解决了。该工程是直接重github下载的微软驱动例程,所以肯定没错,直接工程属性也没找到问题,看看工程文件regfltr.vcxproj,瞬间发现问题所在

1
2
3
4
5
6
7
8
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetVersion>Windows10</TargetVersion>
<UseDebugLibraries>False</UseDebugLibraries>
<DriverTargetPlatform>Desktop</DriverTargetPlatform>
<DriverType>WDM</DriverType>
<PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
<ConfigurationType>Driver</ConfigurationType>

这样就有两种解决方案:

  • 装个wdk10
  • 修改工程文件
    我使用的第二种方式将Windows10—–>WindowsV6.3,WindowsKernelModeDriver10.0——->WindowsKernelModeDriver8.1
    1
    2
    3
    4
    5
    6
    7
    <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <TargetVersion>WindowsV6.3</TargetVersion>
    <UseDebugLibraries>True</UseDebugLibraries>
    <DriverTargetPlatform>Desktop</DriverTargetPlatform>
    <DriverType>WDM</DriverType>
    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>

英文版的VC6某一天突然显示中文乱码了

解决win7 64位 vc6.0中文显示乱码问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format]

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Calls Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Calls Highlight"=hex:00,00,00,00,00,ff,00,00,10,00,10,00
"Superceded code"=hex:80,80,80,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Disassembly Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Assembly Code"=hex:80,80,80,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Memory Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Memory Highlight"=hex:ff,00,00,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Output Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,15,00,15,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Current Error/Tag"=hex:ff,ff,ff,00,00,00,80,00,55,00,55,00
"Bookmark"=hex:00,00,00,00,00,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Registers Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Value Highlight"=hex:ff,00,00,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Source Browser]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,15,00,15,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Source Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Current Error/Tag"=hex:ff,ff,ff,00,00,00,80,00,d2,01,b2,01
"Bookmark"=hex:00,00,00,00,00,ff,ff,00,10,00,10,00
"Breakpoint"=hex:ff,ff,ff,00,80,00,00,00,10,00,10,00
"Current Statement"=hex:00,00,00,00,ff,ff,00,00,70,00,70,00
"Selection Margin"=hex:c8,c8,c8,00,c8,c8,c8,00,13,00,13,00
"Keyword"=hex:00,00,ff,00,ff,ff,ff,00,10,00,11,00
"Comment"=hex:00,80,00,00,ff,ff,ff,00,10,00,11,00
"Number"=hex:ff,00,00,00,ff,ff,ff,00,10,00,11,00
"String"=hex:ff,00,ff,00,ff,ff,ff,00,10,00,11,00
"Operator"=hex:00,00,00,00,ff,ff,ff,00,11,00,11,00
"Wizard IDL/ODL Code"=hex:80,80,80,00,ff,ff,ff,00,14,00,15,00
"HTML Element Name"=hex:80,00,80,00,ff,ff,ff,00,14,00,15,00
"HTML Attribute Name"=hex:ff,00,00,00,ff,ff,ff,00,14,00,15,00
"HTML Attribute Value"=hex:00,00,ff,00,ff,ff,ff,00,14,00,15,00
"HTML Comment"=hex:00,80,00,00,ff,ff,ff,00,14,00,15,00
"HTML Entity"=hex:ff,00,00,00,ff,ff,ff,00,14,00,15,00
"HTML Tag Delimiter"=hex:00,00,ff,00,ff,ff,ff,00,14,00,15,00
"HTML String"=hex:00,00,ff,00,ff,ff,ff,00,14,00,15,00
"HTML Tag Text"=hex:ff,00,ff,00,ff,ff,ff,00,14,00,15,00
"HTML Operator"=hex:00,00,ff,00,ff,ff,ff,00,14,00,15,00
"HTML Server-Side Script"=hex:00,00,00,00,ff,ff,00,00,14,00,14,00
"User Defined Keywords"=hex:00,00,ff,00,ff,ff,ff,00,14,00,15,00
"Wizard Code"=hex:80,80,80,00,ff,ff,ff,00,14,00,15,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Variables Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Variables Highlight"=hex:ff,00,00,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Watch Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c
"Text"=hex:00,00,00,00,ff,ff,ff,00,13,01,b3,00
"Text Selection"=hex:ff,ff,ff,00,00,00,00,00,19,00,19,00
"Watch Highlight"=hex:ff,00,00,00,ff,ff,ff,00,10,00,10,00

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Workspace Window]
"FontFace"="Fixedsys"
"FontSize"=dword:0000000c

也许可以让你不再使用vc6.0的方法

VC-LTL
如何在vs中链接vc6的运行时库

更多技巧请看这里

Visual.Studio程序员箴言.pdf
推荐–带你玩转Visual Studio