====== MS Visual Studio ====== Da ich in näher Zukunft mit Visual Studio arbeiten muß (C/C++), versuche ich Infos, die ich wärend der Einarbeitung gesammelt habe, an dieser Stelle (stichpunktweise) festzuhalten. :!: Weitere Angaben stammen von **Visual Studio 2008**. Files: * **.sln** - [[http://msdn.microsoft.com/de-de/library/df8st53z(v=VS.90).aspx|Projektmappe]] (Solution File).\\ Zitat: //Eine Projektmappe enthält ein oder mehrere Projekte sowie Dateien und Metadaten, die zur Definition der Projektmappe als solche dienen.//\\ Zitat: //Visual Studio speichert die Definition für eine Projektmappe in zwei Dateien mit den Erweiterungen **.sln** und **.suo**. In der Datei für die Projektmappendefinition (**.sln**) werden die Metadaten gespeichert, anhand derer die Projektmappe definiert wird:// * //Projekte, die der Projektmappe zugeordnet sind.// * //Elemente, die auf Projektmappenebene verfügbar und keinem bestimmten Projekt zugeordnet sind.// * //Projektmappen-Buildkonfigurationen, die vorgeben, welche Projektkonfiguration für den jeweiligen Buildtyp gilt.// * **.suo** - Solution User Options (Projektmappen-Optionsdatei). * **.vcproj** - Visual C++-Projektdatei. Weitere Informationen unter [[http://msdn.microsoft.com/de-de/library/hx0cxhaw(v=VS.90).aspx|Projektdateien und Makefiles]]. Zitat: //Die **SLN**-Datei kann in einem Entwicklungsteam von Entwicklern gemeinsam genutzt werden. Die **SUO**-Datei ist eine benutzerspezifische Datei und kann nicht für Entwickler freigegeben werden.// Die IDE sollte man durchs Anklicken der **.sln**-Datei starten. Weitere Infos zu den **Container** (Projektmappen und Projekte) und **Elementen** (Dateien, Verweise, Datenverbindungen) unter:\\ [[http://msdn.microsoft.com/de-de/library/b142f8e7(v=VS.90).aspx|Einführung in Projektmappen, Projekte und Elemente]]. **stdafx.h** - für projektübergreifende Includes. ===== MSDN ===== * The C Run-Time (CRT) Library: [[http://msdn.microsoft.com/de-de/library/634ca0c2(v=VS.80).aspx|Alphabetical Function Reference]] * [[http://msdn.microsoft.com/de-de/library/59ey50w6(v=VS.80).aspx|Run-Time Library Reference]]: C Run-Time Libraries, Run-Time Routines by Category, Global Variables and Standard Types, Global Constants, etc. * Compiler Options: * [[http://msdn.microsoft.com/en-us/library/19z1t1wy(v=vs.100).aspx|Compiler Options Listed by Category]] * [[https://msdn.microsoft.com/de-de/library/9s7c9wdw(v=vs.120).aspx|Compileroptionen in alphabetischer Reihenfolge]] * [[http://msdn.microsoft.com/en-us/library/y0zzbyt4(v=vs.100).aspx|Linker Options]]: * [[http://msdn.microsoft.com/en-us/library/92b5ab4h(v=vs.100).aspx|Compiler-Controlled LINK Options]] * [[http://msdn.microsoft.com/en-us/library/37b80k4a(v=vs.100).aspx|LINK Output]] * Weitere nützliche Infos zum Thema: * Visual C++ Team Blog: [[http://blogs.msdn.com/b/vcblog/archive/2010/05/03/flexible-project-to-project-references.aspx|Flexible Project-to-Project References]] * All about C++ Refactoring in Visual Studio 2015 Preview: [[http://blogs.msdn.com/b/vcblog/archive/2014/11/14/all-about-c-refactoring-in-visual-studio-2015-preview.aspx]] ===== Tipps und Tricks ===== [[EDV:PRG:C:Tipp:Einbetten von Versionsinformationen]] in die ".exe"- oder ".dll"-Files mit VisualStudio. ==== Error LNK1123 ==== :!: **Problem:** VS2010 hat die ganze Zeit ohne Probleme funktioniert. Nach der (Parallel-)Installation von VS2012 (oder evtl. einer anderen Version) meldet der Linker im VS2010 folgenden Fehler: Fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt **Lösung:** Aus dem Verzeichnis **C:\Windows\Microsoft.NET\Framework\v4.0.30319** das File **cvtres.exe** (42Kb) in das Verzeichnis **C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin** kopieren (das gleichnamige File dort vorher umbenennen). Danach funktioniert der Linker in VS2010 wie gewöhnt wieder. **Quelle:**\\ MSDN: [[http://blogs.msdn.com/b/heaths/archive/2011/04/01/visual-c-2010-sp1-compiler-update-for-the-windows-sdk-7-1.aspx]]\\ stack**overflow**: [[http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval/14144713#14144713]] ==== Parameter vom VS-Compiler ==== How to Integrate GNUmake With Visual Studio (By Lowell Boggs, Jr., 05/29/2014): http://www.bordoon.com/cplusplus/VisualStudioIntegration.pdf :!: **Vorhaben:** Welche Kommandos setzt VS beim Kompilieren/Linken/etc. ab? Wie kann man einen Mitschnitt davon bekommen? **Lösung:** In VS im Menü [Tools]->[Options] und dann im sich darauf öffnenden Fenster unter [Projects and Solutions]->[Build and Run] die Einstellung für [MSBuild project build output verbosity] und/oder [MSBuild project build log file verbosity] hochschrauben (auf "Detailed"). ==== Error RC2188 / Error RC1116 ==== :!: **Problem:** VS2013 meldet beim Kompilieren den Fehler **RC2188**: Error 1 error RC2188: ./pfad/header_file.h(48) : error RC2188: C:\pfad\obj\pfad\RCa12352(88) : fatal error RC1116: RC terminating after preprocessor errors C:\pfad\pfad\header_file.h 45 **Ursache:** Das .h-File wurde von dem RC-Compiler geparst und der vertägt sich mit einigen Abschnitten des .h-Files nicht. **Lösung:** Der RC-Compiler verwendet das Makro **RC_INVOKED** für eigene Zwecke. Abschnitte, die den RC-Compiler nicht angehen, können mittels %%#ifdef%% ausgeblendet werden: #ifndef RC_INVOKED // Code... #endif Quelle: [[https://www.c-plusplus.net/forum/299990-full]] ===== UnitTest ===== Infos (mit dem Beispiel) über die in VisualStudio integrierten UnitTests (Microsoft.VisualStudio.TestTools.CppUnitTestFramework):\\ [[http://msdn.microsoft.com/en-us/library/hh694604.aspx]] VS-Extension **GoogleTest Runner**: [[https://visualstudiogallery.msdn.microsoft.com/9dd47c21-97a6-4369-b326-c562678066f0/file/110043/11/GoogleTestRunner.vsix]]\\ //Visual Studio 2013 extension for running C++ unit tests written with GoogleTest framework. Unit Test Runner (Adapter) for Google Test (gtest) unit testing framework.// FIXME ===== Desktopanwendungen ===== **WPF** (Windows Presentation Foundation) * Erstellen von modernen Desktopanwendungen mit Windows Presentation Foundation: [[https://msdn.microsoft.com/de-de/library/mt149843(v=vs.110).aspx]] * Erste Schritte mit WPF: [[https://msdn.microsoft.com/de-de/library/mt149845.aspx]] * Exemplarische Vorgehensweise: Meine erste WPF-Desktopanwendung: [[https://msdn.microsoft.com/de-de/library/mt270964.aspx]] ---- Stand: 06.04.2016 - **in Arbeit** EOF