安裝Visual Studio 2017
在線安裝特定語言
vs_installer.exe --locale en-US
離線安裝命令:
vs_enterprise.exe --layout C:\vs2017offline --lang en-US
具體見:Create an offline installer for Visual Studio 2017
代碼著色刷新很慢
有時候半天才出來,有時候要切換其他頁面才出來,刪了這個目錄就好了.
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\2ehgi10w.if1\Data
Extensions下會有幾個目錄,找到最大的那個,刪了下面的Data.刪的時候先刪到回車站,打開VC試一下是否正常,不正常可以恢復后再刪其他的.
多折騰試下,碰巧可以了,就很好用了.
可能是裝了升級補丁引起的,也可能和VA有關.用起來很不爽.刪了就好了.
快捷鍵
函數域內跳轉 需VA輔助
VA.ScopeNext\scopePrevious\ObjectBrowsingScope
Alt+arrow down\up
DX9包含屬性,適用于VS2012
/Files/flyindark/DX9PropertySheet.7z
通過點擊“視圖-->屬性管理器”打開屬性窗口,選中項目,右鍵導入本地屬性文件即可。
升級到2012后自動編譯FX造成報錯
低版本的項目將.fx文件包含到項目了,升級到VS2012后自動補全了一個HLSL編譯,然后報錯,例如
"HLSL Compiler Error error X3501: 'main': entrypoint not found",百思不得其姐,謝謝google,原來是如此,將其他排除項目外不編譯即可。
技巧:查看內置預定義宏
MSDN關鍵字“Pre-defined Macros”
技巧:在名字空間下包含include文件后,include文件中的類定義會被定義到這個名字空間下
忠告:不要有僥幸心理升級IE,一般會造成JS解析相關的bug造成VS部分UI無法使用。
編譯錯誤:"fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt"
解決:直接google錯誤,棧溢出網站上有解答,簡單操作:將VC11中的"cvtres.exe"覆蓋到VC10中同名文件即可(C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe)
修改環境變量
增加或修改
- setx ANDROID_SDK "K:\Android Develop\SDK\adt-bundle\sdk"
附加到path(警告:這種方式修改PATH非常危險,當PATH長度超過1024,這個修改會發生1024個字符截斷,丟失原來的PATH字符)
- setx PATH "%PATH%;K:\Android Develop\SDK\adt-bundle\sdk\tools" /M
- setx PATH "%PATH%;K:\Android Develop\SDK\adt-bundle\sdk\platform-tools" /M
工具修改
Rapid Environment Editor(免費且干凈)
操作相關
編輯器中光標自動定位到最后一行 |
"工具/選項/文本編輯器/所有語言"設置中的虛擬空間 |
在代碼和文本編輯器中編寫代碼 |
Solution Explorer 與視圖文件同步 |
Projects And Solutions --> General --> Track Active Items ... |
|
|
|
|
IDE設置
多行標簽頁:Tools -> Options -> Environment -> Tabs and Windows -> Show pinned tabs in separate row
編譯時輸出窗口信息:Options->Projects and Solutions -> VC++ Project Settings
大括號塊的outline:Option-Text Editor-C/C++-Outline-State Blocks
VS展開C++包含的頭文件
/showIncludes
https://msdn.microsoft.com/en-us/library/hdkef6tk.aspx
or:
Project Settings -> Configuration Properties -> C/C++ -> Advanced -> Show Includes
ProFactor IncludeManager
http://www.profactor.co.uk/includemanager.php
Tool to track #include dependencies [closed]
http://stackoverflow.com/questions/42308/tool-to-track-include-dependencies
VA查看
VASSISTX -> Tools -> List include Files
‘AlwaysCreate’ 造成工程總是重新編譯
簡單來說造成的原因是某些h文件或readme.txt文件包含在工程里,但是在磁盤確實被刪除了。
如果太多文件不清楚如何找出丟失的,可以用這個工具(木有實際測試):
http://blogs.msdn.com/b/dsvc/archive/2013/03/12/alwayscreate-forces-project-to-be-re-built.aspx
HRESULT轉字符串
C++單步調試緩慢
ue4單步調試一下卡幾秒,其他小工程還算正常。通過導入導出配置,發現在導入的配置Options\Debugging中有若干開關被打開,造成調試緩慢。
什么其他用管理員權限啟動,禁用symbol服務器,刪除過多的斷點,都是扯淡
getenv
在VS中用C 函數getenv("name")獲取環境變量,如果修改了變量,需要重啟VS
升級到VS2015引起__vsnwprintf未定義
Error:
dxerr.lib(dxerrw.obj) : error LNK2019: unresolved external symbol __vsnwprintf
Fix:
包含legacy_stdio_definitions.lib
unresolved symbol errors
dumpbin.exe /LINKERMEMBER somelibrary.lib
Visual C++ change history 2003 - 2015
Visual C++ change history 2003 - 2015
Effects11的問題
如果有各種版本問題,考慮直接編譯源碼:https://github.com/Microsoft/FX11.git
D3DCompileFromFile問題:DIRECT SDK和Windows下各有一份D3DCompiler.lib,用dumpbin可以看到DIRECT下沒有這個符號,將DIRECTX下的D3DCompiler.lib改個名字,鏈接Windows下的庫
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86\d3dcompiler.lib
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86\d3dcompiler.lib
d3dcompiler_47.dll
去這里找
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
64bit去上面目錄的amd64下去找
vs2015.3.ent_enu.iso
http://download.microsoft.com/download/8/4/3/843ec655-1b67-46c3-a7a4-10a1159cfa84/vs2015.3.ent_enu.iso
查看cl.exe和link.exe命令行
Tools>Projects and Solutions>Build and Run>MSBuild
正則表達式中的區塊替換
標記區塊用(),替換區塊用${1}
修復SLN文件關聯圖標
taskkill /im explorer.exe /f
cd /d %userprofile%\appdata\local
del iconcache.db /a
start explorer.exe
exit
Visual Assist清理
HKEY_CURRENT_USER\Software\Whole Tomato
VS2017 Enterprise
NJVYC-BMHX2-G77MM-4XJMR-6Q8QF
<占位標題>
<占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
<占位項1>
<占位項2>
<占位標題>
<占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
<占位項1>
<占位項2>
<占位標題>
<占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述占位描述>
<占位項1>
<占位項2>