當我創建在Visual Studio 2010中一個新的C++類,它會產生一些模板代碼的類。我如何修改這個模板以適應我自己的需求?覆蓋默認的C++在Visual Studio類模板2010
回答
默認的模板是C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojectitems
。適合於x86-vs-x64和VS版本。
類我看到在該目錄 「NEWC++ file.cpp /小時」。但是,他們都是空的。大小是0KB。我是否需要修改嚮導文件?我甚至打開「addmC++ componentclass.vsz」來查看是否有我可以編輯的東西,但它沒有任何類似於生成的模板代碼的東西。 – brainydexter
@Roger當您選擇「添加類」菜單選項時,您可以更清楚地瞭解您需要修改以修改「通用C++類嚮導」生成的類的內容嗎? – User
'vcprojectitems'中的東西控制你從** Project/Add New Item **中看到的東西(以及生成的東西)。在C:\ Program Files文件(x86)\ Microsoft Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \ Generic \ Class \ Scripts \ 1033 \ default.js中定義了'Add Class' C++嚮導,它使用'EnvDTE。 CodeModel'來做實際的代碼生成。我看不到取代此功能的方法。你總是可以寫一個簡單的VS擴展來替換你自己的菜單項,儘管... –
(如果我理解正確)
我不認爲增加一個新的類時,你可以修改由嚮導自動生成的代碼,例如。
也許你可以編寫一個新的嚮導? ,查清這個信息 M.
的一個問題是大多數有關創建模板的信息是.NET和過程是Visual C++不同。此外,答案可能不是你想聽到的,因爲它涉及編輯JavaScript代碼,而不僅僅是編輯一些模板文件。您可以創建一個全新的使用模板文件的嚮導,但這是修改默認模板的一種方法。修改嚮導代碼涉及編輯JavaScript文件:
C:\ Program Files文件\微軟的Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \一般\類\腳本\ 1033 \ default.js
JavaScript的使用CodeModel來操縱(或在這種情況下生成)源代碼。在該文件中有一個OnFinish
函數,您可以使用該函數修改輸出的類詳細信息。你會看到這樣一行在文件中:
var newclass = oCM.AddClass(strClassName,
strHeader, vsCMAddPositionEnd, "", "", vsCMAccessDefault);
添加新的功能,你會做這樣的事情:
newclass.AddFunction("MyFunction", vsCMFunctionFunction,
vsCMTypeRefVoid, vsCMAddPositionEnd, vsCMAccessPublic, strImpl);
你可以閱讀一下:
參考文獻:
經過2008年的MVS ...
文件:C:\ Program Files文件\微軟的Visual Studio 9.0 \ VC \ VCWizards \ CodeWiz \一般\類\腳本\ 1033 \ default.js
添加的代碼
var oCopyCtor = newclass.AddFunction(strClassName+"(const "+strClassName+"& refObj)", vsCMFunctionConstructor, "", vsCMAddPositionEnd, vsCMAccessPrivate, strImpl);
var oAssignmentOperator = newclass.AddFunction("operator=(const "+strClassName+"& rhs)", vsCMFunctionOperator, strClassName+"&", vsCMAddPositionEnd, vsCMAccessPrivate, strImpl);
oAssignmentOperator.BodyText = "if(&rhs == this) { return *this; }\n//TODO: real assignment here...\nreturn *this;\n"
但(創建默認構造函數在default.js &析構函數後)我仍然無法弄清楚如何關閉實施*的.cpp(x.BodyText =「」;沒有幫助),並省略strImpl參數提出實施中的* .h文件
- 1. 覆蓋django-allauth的默認模板
- 2. 如何更改默認Visual Studio C#新類文件模板?
- 3. 在visual studio 2010中覆蓋文字
- 4. Visual Studio 2010解決方案模板默認位置
- 5. 覆蓋Visual Studio 2010的UI行爲
- 6. Visual C++ 2010默認設置
- 7. 代碼覆蓋率Visual Studio 2010
- 8. C/C++ - 覆蓋默認功能
- 9. Visual Studio 2010 Intuit QBFC12模板
- 10. 調試Visual Studio 2010模板
- 11. Visual Studio 2010中的默認語言
- 12. 覆蓋DS默認佈局
- 13. 本地C++ exe/dll的Visual Studio 2010中的代碼覆蓋率
- 14. 的fancybox 2默認覆蓋
- 15. Visual Studio 2010部分類的代碼覆蓋
- 16. 在Repeater上創建用戶可覆蓋的默認模板
- 17. 如何修改Visual Studio 2010 C#測試項目模板中的默認UnitTest1.cs文件模板?
- 18. 默認Visual Studio 2010和2008字體
- 19. 覆蓋默認字段類型在Django
- 20. Visual Studio 2010 C++ CLR調試Windows:如何覆蓋'Value'部分?
- 21. 覆蓋默認值
- 22. 覆蓋默認構造
- 23. 如何在Visual Studio 2017的默認模板中更改路由?
- 24. Rails的模型as_json覆蓋默認值
- 25. 覆蓋默認的模擬屬性值
- 26. C++在Visual Studio 2010
- 27. 正確的方式來覆蓋索納塔的默認模板
- 28. 覆蓋C#中的默認參數
- 29. 覆蓋模板類功能
- 30. 在默認窗體中覆蓋django模型默認值?
我沒有用它生成的默認代碼爲我的一個問題。我想修改它生成的默認代碼。 – brainydexter
你檢查這個文件夾:微軟的Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \一般\ –