====== 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