Quando creo una nuova classe C++ in Visual Studio 2010, viene generata una classe con un codice di modello. Come posso modificare questo modello per adattarlo alle mie esigenze?sovrascrive il modello di classe C++ predefinito in Visual Studio 2010
risposta
I modelli predefiniti sono in C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojectitems
. Cambia come appropriato per la versione x86-vs-x64 e VS.
vedo un "newC++ file.cpp/h" in quella directory. Ma sono entrambi vuoti. La dimensione è 0 KB. Devo modificare i file della procedura guidata? Ho persino aperto "addmC++ componentclass.vsz" per vedere se c'è qualcosa che posso modificare lì, ma non aveva nulla di simile al codice del template che viene generato. – brainydexter
@Roger puoi essere un po 'più esplicito su cosa avresti bisogno di modificare per modificare la classe generata dalla "Procedura guidata di classe C++ generica" quando scegli l'opzione di menu "Aggiungi classe"? – User
Il contenuto di 'vcprojectitems' controlla ciò che vedi (e ciò che viene generato) da ** Progetto/Aggiungi nuovo elemento **. Il wizard C++ 'Add Class' è definito in' C: \ Programmi (x86) \ Microsoft Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \ Generic \ Class \ Scripts \ 1033 \ default.js', e usa 'EnvDTE. CodeModel' per fare la generazione del codice reale. Non riesco a vedere un modo per sostituire questa funzionalità. Puoi sempre scrivere una semplice estensione VS per sostituire questa voce di menu con la tua, anche se ... –
(se ho capito bene)
Non credo che è possibile modificare il codice che viene generato automaticamente da un mago, per esempio quando si aggiunge una nuova classe.
Potresti forse programmare un nuovo wizard? M.
Un problema con la ricerca di informazioni su questa è la maggior parte delle informazioni sulla creazione di modelli è per .NET e il processo è diverso per Visual C++. Anche la risposta probabilmente non è ciò che vuoi sentire perché riguarda la modifica del codice javascript piuttosto che la modifica di alcuni file modello. È possibile che tu possa creare una procedura guidata completamente nuova che utilizza un file modello, ma questo è un modo per modificare il modello predefinito senza farlo. Modifica del codice di procedura guidata comporta la modifica di un file javascript:
C: \ Programmi \ Microsoft Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \ Generico \ Class \ Scripts \ 1033 \ Default.js
Il javascript utilizza il CodeModel per manipolare (o generare, in questo caso) il codice sorgente. All'interno di quel file c'è una funzione OnFinish
che puoi usare per modificare i dettagli della classe che vengono emessi. Si vedrà una linea come questa nel file:
var newclass = oCM.AddClass(strClassName,
strHeader, vsCMAddPositionEnd, "", "", vsCMAccessDefault);
per aggiungere una nuova funzione si dovrebbe fare qualcosa di simile:
newclass.AddFunction("MyFunction", vsCMFunctionFunction,
vsCMTypeRefVoid, vsCMAddPositionEnd, vsCMAccessPublic, strImpl);
Si può leggere su di esso qui:
Documentazione di riferimento:
Controllato in MVS del 2008 ...
File: C: \ Programmi \ Microsoft Visual Studio 9.0 \ VC \ VCWizards \ CodeWiz \ Generico \ Class \ Scripts \ 1033 \ Default.js
codice aggiunto (dopo la creazione di default ctor & dtor nelle 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"
Ma io ancora non riesco a capire come disattivare implementazione in * cpp (x.BodyText = ""; non aiuta), e omettendo il parametro strImpl mette l'implementazione nel file * .h
- 1. Modello codice designer Visual Studio 2010
- 2. modello odata in Visual Studio 2010
- 3. LNK 2005 in Visual C++ in Visual Studio 2010
- 4. Visual Studio 2010 continua a cambiare il mio browser predefinito
- 5. Modalità C# in Visual Studio 2010 Professional
- 6. Limitazioni di Visual Studio 2010 Express C#
- 7. Cambia browser predefinito in Visual Studio 2010 RC
- 8. Modifica del framework di destinazione predefinito Visual Studio 2010
- 9. Font di Visual Studio 2010 e 2008 predefinito
- 10. GTK # in Visual Studio 2010
- 11. Visual Studio 2010 C++ compiler problema
- 12. riferimenti di rvalue in Visual Studio 2010
- 13. Modello di shell di Visual Studio 2010 interrotto
- 14. Java in Visual Studio 2010?
- 15. Importa modello elenco file STP in Visual Studio 2010
- 16. WebsiteSpark & Visual Studio 2010
- 17. Progetto Visual Studio 2010 in Visual Studio 2012
- 18. /LinkResource in Visual Studio 2010
- 19. Integrazione di IronScheme in Visual Studio 2010
- 20. Estensibilità di Visual Studio 2010 - Creazione guidata modello progetto personalizzato
- 21. HWnd di Visual Studio 2010
- 22. Installazione di Visual Studio 2010
- 23. Raccolta di buoni temi C++ in Visual Studio 2010?
- 24. Utilizzo di dll in Visual Studio 2010 C++
- 25. Attiva eccezioni C++ in Visual Studio 2010 opzioni di compilazione
- 26. conversione di progetti java in C# con visual studio 2010
- 27. Licenza Visual Studio Express 2010
- 28. Posso modificare il modello di commento XML in Visual Studio?
- 29. Visual Studio 2010 IDE con Visual C++ 6.0 compilatore?
- 30. Visual Studio 2010 scarabocchi IntelliSense per il codice C
Non ho problemi con la generazione di codice di default per me. Voglio modificare il codice predefinito che genera. – brainydexter
Avete controllato questa cartella: Microsoft Visual Studio 10.0 \ VC \ VCWizards \ CodeWiz \ Generic \ Class –