{"id":1146,"date":"2015-05-04T17:25:57","date_gmt":"2015-05-04T15:25:57","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=1146"},"modified":"2015-05-04T19:07:34","modified_gmt":"2015-05-04T17:07:34","slug":"vs-2015-rc-ist-verfuegbar-ein-kurzer-einblick-aus-der-c-sicht","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2015\/05\/04\/vs-2015-rc-ist-verfuegbar-ein-kurzer-einblick-aus-der-c-sicht\/","title":{"rendered":"VS-2015 RC ist verf\u00fcgbar &#8211; ein kurzer Einblick aus der C++ Sicht"},"content":{"rendered":"<p>Seit den letzten Tagen des April ist nun auch der Release Candidate f\u00fcr VS_2015 verf\u00fcgbar.<br \/>\n<a href=\"http:\/\/www.visualstudio.com\/en-us\/news\/vs2015-vs.aspx\">http:\/\/www.visualstudio.com\/en-us\/news\/vs2015-vs.aspx<\/a><\/p>\n<p>Die Liste ist lang. Was sich f\u00fcr C++ Neues ergibt dagegen doch recht \u00fcbersichtlich. \ud83d\ude09<\/p>\n<p>Hier ein paar Punkte, die ein erster Test und Streifzug ergab:<\/p>\n<ul>\n<li>Man sollte in jedem Fall die angepasste Installation verwenden. Ansonsten wird der MFC Sourcecode nicht mit installiert (siehe auch <a href=\"http:\/\/blog.m-ri.de\/index.php\/2015\/04\/09\/stark-verzoegertes-oeffnen-von-projekten-in-visual-studio-2013\/#comment-40146\">Kommentar <\/a>von Michael K\u00fclshammer)<\/li>\n<li>&#8222;Fast&#8220; alle Projekte lie\u00dfen sich fehlerfrei kompilieren. Es gab zwar einen Haufen neuer Warnungen aber, diese haben eher mit dem Stil des Programmierens zu tun. Speziell sind es <em>C4456, C4457, C4458 (Declaration off&#8230; hides previous &#8230; \u00a0declaration)<\/em>. Im Klartext. Ich verwende immer mal wieder eine Variable <em>it<\/em> oder <em>i<\/em> gerne, die auch im \u00e4u\u00dferen Scope vorhanden ist.<br \/>\nF\u00fcr diese neuen Warnings gibt es allerdings\u00a0bisher keine Dokumentation.<\/li>\n<li>Und eben die typischen Fallen in denen man eben thirdparty Libs (z.B. OpenSSL) eben neu erzeugen muss.<\/li>\n<li>Leider ben\u00f6tige ich f\u00fcr ein spezielles Update Programm noch die MBCS Variante der MFC. Diese ist zwar \u00fcber das Netz als Link bei MS vorhanden, f\u00fchrt aber zu einer 404 Sackgasse. (Dieses Programm benutzt extrem alten Code, bei denen noch niemand an char\/wchar_t bzgl. der Windows API und anderes dachte und Neuschreiben hatte ich bisher vermieden. \ud83d\ude42 )<\/li>\n<li>Nervig war eine &#8222;neue&#8220; Compilermeldungen C1041, aber diese ist nirgendwo beschrieben (wie auch andere nicht). Online jedenfalls nicht. Ich bekam den Hinweis, dass eine PDB Datei nicht geschrieben werden kann und ich bitte die Option \/FS verwenden soll. Die Ursache ist mir unklar, weil bei sp\u00e4teren Kompilierungsversuchen das Ganze durchlief.<\/li>\n<li>Etwas l\u00e4nger musste ich f\u00fcr den folgenden Fehler suchen:<br \/>\n<em>\u00a0(odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function StringCchPrintfW).<br \/>\n<\/em>Hier scheint noch etwas mit dem SDK auch in der Release Version nicht zu passen. Auf <a href=\"https:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/1039102\">connect.microsoft.com <\/a>fand ich einen entsprechenden Eintrag um diesen Fehler zu umgehen. Scheinbar ist das neue &#8222;korrigierte&#8220; SDK, dass in der L\u00f6sung versprochen wird im RC noch nicht enthalten.<\/li>\n<li>Vieles in der UI hat sich ge\u00e4ndert. So werden zum Beispiel die Breakpoint mit einem eigenen Kontexttoolbar angezeigt und benutzt man diesen dann werden die Einstellungen nicht in einem Dialog angepasst, sondern innerhalb des Sourcecode Fensters wird am unteren Rand ein Box f\u00fcr die Eigenschaften ge\u00f6ffnet. Das ist definitiv gew\u00f6hnungsbed\u00fcrftig. Und nur mit der Maus zu bedienen.<\/li>\n<li>Im MFC Sourcecode findet sich nur eine neue Header-Datei <em>afxlayout.h<\/em>. In dieser Headerdatei findet sich die Deklaration f\u00fcr die Klasse <em>CMFCDynamicLayout. <\/em>Diese Klasse wird direkt in <em>CWnd <\/em>als Zeiger verwendet und erlaubt die Neupositionierung von Kindfenstern damit f\u00fcr alle Fenstertypen. D.h. nicht nur Dialoge. D.h. man kann in jedem MFC-Fenster <em>EnableDynamicLayout<\/em> ausf\u00fchren und entsprechend die Kindfenster neu anordnen lasen wie man es selber definiert.<br \/>\nDie Implementierung schlie\u00dft scheinbar die Nutzung des Ressourceneditors\u00a0ein, denn die Einstellungen k\u00f6nnen aus dem Ressourcentyp <em>RT_DIALOG_LAYOUT<\/em> ausgelesen werden. In den Fenstereigenschaften eines Controls findet sich nun der Abschnitt <em>Dynamic Layout <\/em>in dem man Position und Gr\u00f6\u00dfe in Prozent zur Gesamt\u00e4nderung angeben kann.<\/li>\n<li>Wer die Header genauer untersucht findet klitze kleine \u00c4nderungen Hier und Da wie z.B. die Unterst\u00fctzung von runden Ecken bei Tooltipps.<\/li>\n<li>In der ATL konnte ich bisher keine Erweiterungen und gravierende \u00c4nderungen finden.<\/li>\n<li>Die meisten \u00c4nderungen im ATL und MFC sind \u00c4nderungen im Trace Code. Statt &#8222;%s&#8220; wird nun konsequent &#8222;%Ts&#8220; als Formatierungszeichen verwendet. Angek\u00fcndigt war eine grunds\u00e4tzliche \u00c4nderung bzgl. &#8222;Wide String Format Specifiers&#8220; allerdings wurde diese bereits im April zur\u00fcckgezogen (siehe <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2014\/06\/18\/crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1.aspx\">hier<\/a>).<\/li>\n<li>Vermisst habe ich einige CRT Source Dateien, die normalerweise im VC\\CRT\\SRC Order liegen. Der Ordner war in meiner Installation leer und enthielt nur weitere Ordner.<br \/>\nMir war es auch nicht m\u00f6glich beim Testen in den CRT Code zu steppen. Zumindest bei mir wurden keine passenden Source Dateien gefunden.<\/li>\n<li>Mit den CRT-DLLs werde ich mich ab morgen mal befassen. Auch hier hat Michael K\u00fclshammer gerade eben einen <a href=\"http:\/\/blog.m-ri.de\/index.php\/2015\/04\/09\/stark-verzoegertes-oeffnen-von-projekten-in-visual-studio-2013\/#comment-40263\">Beitrag<\/a> in meinem Blog geschrieben.<\/li>\n<\/ul>\n<p>Summa summarum nur minimale Anpassungen in meinen Projekten f\u00fcr den Umstieg von <em>VS-2013<\/em> auf <em>VS-2015, <\/em>dar\u00fcber hinaus so gut wie keine (erkennbaren) \u00c4nderungen in der CRT\/ALT und MFC. Was es an neuen Compiler Features gibt findet man in den Blogs ausf\u00fchrlicher beschrieben als ich das kann. Zudem halte ich mich nicht f\u00fcr den gro\u00dfen C++ Sprachen-und-Standard-Guru.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit den letzten Tagen des April ist nun auch der Release Candidate f\u00fcr VS_2015 verf\u00fcgbar. http:\/\/www.visualstudio.com\/en-us\/news\/vs2015-vs.aspx Die Liste ist lang. Was sich f\u00fcr C++ Neues ergibt dagegen doch recht \u00fcbersichtlich. \ud83d\ude09 Hier ein paar Punkte, die ein erster Test und Streifzug ergab: Man sollte in jedem Fall die angepasste Installation verwenden. Ansonsten wird der MFC &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2015\/05\/04\/vs-2015-rc-ist-verfuegbar-ein-kurzer-einblick-aus-der-c-sicht\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eVS-2015 RC ist verf\u00fcgbar &#8211; ein kurzer Einblick aus der C++ Sicht\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,3,348],"tags":[347],"class_list":["post-1146","post","type-post","status-publish","format-standard","hentry","category-c","category-programmieren","category-vs-2015","tag-vs-2015"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=1146"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1146\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=1146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=1146"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=1146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}