Bugs fixed in MFC in Visual Studio 2008 SP1

Bugs fixed in MFC in Visual Studio 2008 SP1

  • Comments 34

Hello, everyone.  This is Pat Brenner.  I’m an SDE on the Visual C++ Libraries team.

We’ve just released Visual Studio 2008 SP1, and it includes about 55 fixes to the MFC library.  Many of these fixes are for the new features that were added in the Feature Pack, but others were bugs in the RTM version of Visual Studio 2008 that we have fixed.  Here is a partial list of the issues that we addressed:

·         Some accessibility issues in toolbar and ribbon components were fixed.

·         Running MFC applications on Windows 2000 (with or without GDIPlus.dll) is supported.

·         Alignment (packing) issues using the new MFC headers were fixed.

·         All security-related issues that we found were fixed.

·         Some issues with display of international characters in ribbon edit controls were fixed.

·         Issues with wizard-generated code in various non-standard configurations were fixed.

·         A number of small issues in the rendering of the ribbon and toolbar were fixed.

·         Warnings in the MFC samples when compiling /analyze were eliminated.

I hope this has been helpful.  As always, if you find bugs in MFC or any of the Visual C++ libraries, please log a bug on Microsoft Connect and to let us know about it.  At least 10 of the MFC bugs fixed for the SP1 release were reported by customers like you!

Pat Brenner
Visual C++ Libraries Team


Leave a Comment
  • Please add 6 and 3 and type the answer here:
  • Post
  • PingBack from http://housesfunnywallpaper.cn/?p=444

  • You've been kicked (a good thing) - Trackback from DotNetKicks.com

  • THE SP1 eats my disk over 2.5G

    Is there a way to retrieve some space ?

  • Hello,

    > Alignment (packing) issues using the new

    > MFC headers were fixed.

    What were those issues, specifically? We've had our share of problems with inconsistent struct alignment, and the symptoms range from memory leaks to memory corruption.

    We won't be able to install SP1, so do we need to use #pragma pack or similar as a workaround?


    - Kim

  • It's possible to apply styles (CMFCVisualManager) to a CDialog?


  • Does the Visual Studio 2008 SP1 include C++ Feature Pack?

  • "Here is a partial list of the issues that we addressed."

    Where can we find the complete list?

  • First of all: great news and great update! Congratulations and MFC rulz...

    Besides: why VS still use different GDIPlus.dll version as Office Team?


  • I found version in the \VC\redist\x86\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest is 9.0.30729.1, but I created a new project and build, the release.exe's manifest version still 9.0.21022.8.


  • yuguang.hu - read this blog entry


    the real solution for you is (which I'm happy to say actually works in SP1) is to:


    near the top of your stdafx.h

  • Kim: the packing issues referred to related to feature pack headers only, if you don't use the default alignment in your project.  The workaround is to use

    #pragma pack(push, _AFX_PACKING)


    #pragma pack(pop)

    around any place you include feature pack header files (e.g. afxcontrolbars.h), see


    for more info

  • Ted:

    very thanks, I just test it, it really works.

  • I just read the http://blogs.msdn.com/vcblog/archive/2008/05/15/vc-runtime-binding.aspx and know more about this issue.

    But I still think it's a bug.

    Someone copy exe&dll&Microsoft.VC90.CRT to destination folder, in vs2k8 RTM, it works well, but in vs2k8 sp1, it would broken. If he copy the RTM's Microsoft.VC90.CRT, it will work. But, the old Microsoft.VC90.CRT has been overwritten!

    So the poor guy must change all his project and add the #define _BIND_TO_CURRENT_VCLIBS_VERSION 1, it's really horrible.

    Another scenario, a newbie install vs2k8 with sp1, he create a project with app wizard, he build, and copy the binary with folder Microsoft.VC90.CRT to a clean machine, he will very surprise it doesn't work!

  • Yes, agreed Hu I think that at least the applocal situation should be emphasized in documentation, it's not obvious to a new users they have to use _BIND_TO_CURRENT_VCLIBS_VERSION if they want to use applocal.

    Also you're right they don't leave the RTM versions of the applocal folders in the redist directories, in case you want to use them.  So you have to manually "re-create" them by digging around in WinSxS or hope you have a backup from before installing SP1.

    I don't consider these bugs, but almost all users will encounter this issue trying to use applocal.  

    by the way the old way (use SP1 versions by default) used to work in VC2005, you had to use _USE_RTM_VERSION to get it back to RTM.  I think a lot of users will be surprised, if not confused by the new situation in 2008 SP1 (since many more people will be using 2008 SP1 than the 2008 feature pack. Consider the feature pack a "beta" test of this new approach :))

  • Hi Ted, Hi Hu,

    I think the new default in VS2008 SP1 to make RTM binding default makes sense for many software companies as you can continue developing exe and dll modules with the new SP1 on your developer machine without the need to redistribute the SP1 crt/mfc to all your customer machines. So patching a current release is kept simple.

    To make this easier to use/find it would be nice to have a switch in the project settings dialog for RTM/SP1 - or a combobox for RTM/SP1/SP2... who knows ;-)



Page 1 of 3 (34 items) 123