{"id":781,"date":"2011-03-17T21:08:22","date_gmt":"2011-03-17T20:08:22","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=781"},"modified":"2011-03-18T13:44:26","modified_gmt":"2011-03-18T12:44:26","slug":"aufstellung-aller-anderungen-an-der-mfc-durch-vs-2010-sp1","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2011\/03\/17\/aufstellung-aller-anderungen-an-der-mfc-durch-vs-2010-sp1\/","title":{"rendered":"Aufstellung aller \u00c4nderungen an der MFC durch VS-2010 SP1"},"content":{"rendered":"<p>Ich habe mir mal die M\u00fche gemacht alle \u00c4nderungenan der <em>MFC<\/em>, die im <em>VS-2010 SP1 <\/em>enthalten sind, hier im Detail aufzuf\u00fchren.<\/p>\n<p>Viele \u00c4nderungen sind es nicht, wie man schnell sieht. Ich empfehle als weitere Quelle f\u00fcr Infos \u00fcber den <em>SP1 <\/em>die bekannten Blogs des MS<em>-C++<\/em> Teams und die <em>KB<\/em>.<br \/>\n<a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2011\/03\/10\/10139062.aspx\">http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2011\/03\/10\/10139062.aspx<\/a><br \/>\n<a href=\"http:\/\/support.microsoft.com\/kb\/983509\">http:\/\/support.microsoft.com\/kb\/983509<\/a><\/p>\n<p>Neue Samples finden sich nach dem SP1 Setup auf der Festplatte im folgenden Ordner:<br \/>\n<em>C:\\Program Files\\Microsoft Visual Studio 10.0\\Samples\\1033\\VC2010SP1Samples.zip<\/em><\/p>\n<p>F\u00fcr entsprechende bekannte Fixes habe den Text aus den Blogs \u00fcbernommen. Alle anderen \u00c4nderungen habe ich durch einen Vergleich des Sourcecode mit <em>WinMerge <\/em>ermittelt. Code\u00e4nderungendie ich nicht direkt einem Fehler zuordnen konnte habe ich mit dem Prefix Change, markiert und nat\u00fcrlich die neuen Features entsprechend.<\/p>\n<p>In einem sp\u00e4teren Artikel werde ich mich noch die \u00c4nderungenan <em>CRT<\/em> und <em>STL<\/em> genauer unter die Lupe nehmen.<\/p>\n<h3>Neues Feature: Direct2D Unterst\u00fctzung (dokumentiert)<\/h3>\n<p>Direct2D, a hardware-accelerated, immediate-mode, 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and text. For more information, visit the following Microsoft website: Direct2D.<br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd370990.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/dd370990.aspx<\/a><br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/gg482719.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/gg482719.aspx<\/a><\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afx.h, afxglobals.h, afxrendertarget.h, afxwin.h<\/li>\n<li>afxglobals.cpp, afxrendertarget.cpp, appui3.cpp, wincore.cpp<\/li>\n<\/ul>\n<p>Anmerkung: Die Verwendung von <em>Direct2D<\/em> f\u00fchrt dazu, dass <em>CoInitialize<\/em> ausgef\u00fchrt wird.<\/p>\n<h3>Neues Feature: Windows Animation Manager Unterst\u00fctzung (dokumentiert)<\/h3>\n<p>Windows Animation Manager, which enables rich animation of user interface elements. For more information, visit the following Microsoft website: Windows Animation Manager.<br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/gg482719.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/gg482719.aspx<\/a><\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afxanimationcontroller.h, afxanimationhelper.h, afxwin.h<\/li>\n<li>afxanimationcontroller.cpp<\/li>\n<\/ul>\n<h3>Bugfix: Korrektur eines Fehlers in den RDX Kompontenten (dokumentiert)<\/h3>\n<p>In the CDatabase\/Crecordset MFC, the &#8222;DoFieldExchange&#8220; variable does not work correctly in Visual Studio 2010.<br \/>\n<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/574974\">http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/574974<\/a><\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>dbrfx.cpp<\/li>\n<\/ul>\n<h3>Bugfix:\u00a0 Umgang mit \ufeff\ufeffSPI_GETNONCLIENTMETRICS in unterschiedlichen Windows Versionen (nicht dokumentiert)<\/h3>\n<p>Der interne Umgang mit unterschiedlichen Windows Versionen und SPI_GETNONCLIENTMETRICS wurde gefixed.<\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afxglobals.cpp, afxribbonbar.cpp, afxvisualmanageroffice2007.cpp, afxvisualmanagerwindows7.cpp<\/li>\n<\/ul>\n<h3>Change: \ufeffCleanup der MFCNext Klassen (nicht dokumentiert)<\/h3>\n<p>Das\u00a0Cleanup f\u00fcr die neuen MFC-Next Klassen wurde ge\u00e4ndert.<\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afxcontrolbarutil.h<\/li>\n<li>afxglobals.cpp, afxwinappex.cpp, ctlmodul.cpp<\/li>\n<\/ul>\n<h3>Bugfix: Fehler bei Anzeige in CFormView Klassen (nicht dokumentiert)<\/h3>\n<p>VC-2010 MFC CFormViewzeichnet Buttons beim Rollenfalsch, es erscheinen schwarze Bl\u00f6cke<br \/>\n<a href=\"http:\/\/blog.m-ri.de\/index.php\/2010\/08\/28\/bug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke\/\">http:\/\/blog.m-ri.de\/index.php\/2010\/08\/28\/bug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke\/<\/a><\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afxext.h<\/li>\n<li>viewform.cpp<\/li>\n<\/ul>\n<h3>Bugfix: CImageList::DrawIndirect wurde korrigiert (nicht dokumentiert)<\/h3>\n<p>CImageList::DrawIndirect funktioniert nicht korrekt weil cbSize nicht initialisiert wurde<br \/>\n<a href=\"http:\/\/blog.m-ri.de\/index.php\/2010\/07\/21\/bug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect\/\">http:\/\/blog.m-ri.de\/index.php\/2010\/07\/21\/bug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect\/<\/a><\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>winctrl7.cpp<\/li>\n<\/ul>\n<h3>Change: \u00c4nderung des Suchalgorithmus f\u00fcr MFC Satellite DLLs (nicht dokumentiert)<\/h3>\n<p>Das Handling des Suchalgorithmus f\u00fcr die MFC Resource DLLs wurde ge\u00e4ndert<\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>appcore.cpp, dllinit.cpp<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p><strong>PS:<\/strong><br \/>\nErstaunlich, dass zwei der Bugs, die ich zur MFC gemeldet habe auch direkt in diesem SP1 gefixed wurden. Das ist eine Quote, die ich in den letzten 12 Jahren bei einem SP noch nie hatte \ud83d\ude42<\/p>\n<h2>Nachtrag und Erg\u00e4nzungen am 18.03.2011<br \/>\ndurch Sven von <a href=\"http:\/\/www.speedproject.de\">http:\/\/www.speedproject.de<\/a><\/h2>\n<h3>Infos zum Laden der\u00a0dwmapi.dll<\/h3>\n<p>Die Datei <em>dwmapi.dll<\/em> wird nun explizit aus dem Systemverzeichnis geladen.<\/p>\n<p>Ge\u00e4nderte Dateien:<\/p>\n<ul>\n<li>afxglobals.cpp<\/li>\n<\/ul>\n<h3>Infos zum Suchalgorithmus der MFC DLLs<\/h3>\n<p>Die \u00c4nderung des Suchalgorithmus f\u00fcr die zus\u00e4tzlichen Sprachressourcen ist ebenfalls eine Schutzma\u00dfname gegen das \u2018Binary Planting\u2019. Die Dlls werden jetzt nur noch aus dem Verzeichnis geladen, in dem sich die MFC-Dll befindet.<\/p>\n<h3>Infos zu dem ge\u00e4nderten Clennup der MFCNext Klassen<\/h3>\n<p>Der Grund f\u00fcr die \u00c4nderung beim Aufr\u00e4umen ist wohl ein m\u00f6gliches Speicherleck beim Beenden:<br \/>\n<a href=\"http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/577870\/cmfcbutton-causes-memory-leak\">http:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/577870\/cmfcbutton-causes-memory-leak<\/a><\/p>\n<p><strong>Danke Sven!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe mir mal die M\u00fche gemacht alle \u00c4nderungenan der MFC, die im VS-2010 SP1 enthalten sind, hier im Detail aufzuf\u00fchren. Viele \u00c4nderungen sind es nicht, wie man schnell sieht. Ich empfehle als weitere Quelle f\u00fcr Infos \u00fcber den SP1 die bekannten Blogs des MS-C++ Teams und die KB. http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2011\/03\/10\/10139062.aspx http:\/\/support.microsoft.com\/kb\/983509 Neue Samples finden sich &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2011\/03\/17\/aufstellung-aller-anderungen-an-der-mfc-durch-vs-2010-sp1\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eAufstellung aller \u00c4nderungen an der MFC durch VS-2010 SP1\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,4,3,172],"tags":[370,82,352,78,128,274],"class_list":["post-781","post","type-post","status-publish","format-standard","hentry","category-c","category-mfc","category-programmieren","category-vs2010","tag-c","tag-comspec","tag-mfc","tag-mfcnext","tag-sp1","tag-vc-2010"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/781","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=781"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/781\/revisions"}],"predecessor-version":[{"id":782,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/781\/revisions\/782"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=781"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}