The final release of the Visual C++ 2008 Feature Pack is now available for download. This release provides several exciting features for C++ developers, such as a major update to MFC and an implementation of TR1. These features are fully covered under Microsoft’s standard support policies.
The Feature Pack is available free of charge to any Visual Studio 2008 Standard or above customer. The download can be found at http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en.
Using the included MFC components, developers can create applications with the “look & feel” of Microsoft’s most popular products – Microsoft Office, Visual Studio and Internet Explorer. Some of the interesting MFC components in the Feature Pack include:
· Office 2007 Ribbon Bar: Ribbon, Pearl, Quick Access Toolbar, Status Bar, etc.
· Office 2003 and XP look: Office-style toolbars and menus, Outlook-style shortcut bar, print preview, live font picker, color picker, etc.
· Visual Studio look: sophisticated docking functionality, auto hide windows, property grids, MDI tabs, tab groups, etc.
· Internet Explorer look: Rebars and task panes
· Vista theme support
· “On the fly” menus and toolbar customization: users can customize the running application through live drag and drop of menu items and toolbar buttons
· Shell management classes: use these classes to enumerate folders, drives and items, browse for folders and more
More information on our new MFC support can be found at the sites below:
MFC documentation & walkthroughs http://msdn2.microsoft.com/en-us/library/bb982354.aspx
Channel 9: New Updates to MFC http://channel9.msdn.com/showpost.aspx?postid=355087
TR1 (“Technical Report 1”) is a set of proposed additions to the C++0x standard. Our implementation of TR1 contains a number of important features such as smart pointers, regular expression parsing, containers (tuple, array, unordered set, etc) and sophisticated random number generators.
More information on TR1 can be found at the sites below:
TR1 documentation http://msdn2.microsoft.com/en-us/library/bb982198.aspx
Channel 9: Digging into TR1 http://channel9.msdn.com/showpost.aspx?postid=385821
TR1 slide decks (recommended) http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx
This Feature Pack is only supported on systems which have the English language (ENU) version of Visual Studio 2008 Standard Edition or above installed. Support for systems with non-English versions of Visual Studio 2008 installed will be available with Visual Studio 2008 Service Pack 1.
The documentation for this feature pack has already been added to MSDN online and will be included with the local MSDN documentation with SP1.
Enjoy all this new functionality!
Visual C++ Development Team
you can reproduce the bug by compiling your project with __fastcall.
this occurs because <memory> declares it as __cdecl while intrin.h doesn't specify.
quick fix? remove the __CLRCALL_PURE_OR_CDECL bit from line 994.
Thanks for reporting this. I've added your repro to our internal bug "<memory> should include <intrin.h>".
Stephan T. Lavavej
Visual C++ Libraries Developer
I installed the release version on top of beta. Now, I get compile errors in New Controls project (I haven't tried others yet). Following are a few of many. Seems like the sample files are not updated based on changes to the release version.
c:\program files\microsoft visual studio 9.0\samples\c++\mfc\visual c++ 2008 feature pack\newcontrols\customproperties.cpp(288) : error C2065: 'm_bValueIsTrancated' : undeclared identifier
c:\program files\microsoft visual studio 9.0\samples\c++\mfc\visual c++ 2008 feature pack\newcontrols\customproperties.cpp(338) : error C2065: 'globalData' : undeclared identifier
c:\program files\microsoft visual studio 9.0\samples\c++\mfc\visual c++ 2008 feature pack\newcontrols\customproperties.cpp(338) : error C2228: left of '.clrTextHilite' must have class/struct/union
I just tried the sample myself and it seems to compile with no errors. Have you tried installing after uninstalling the beta?
Let me know if the sample still doesn't compile with you.
>I installed the release version on top of beta. Now, I get compile errors in New Controls project.
Did you make sure to un-ZIP the new versions of the sample source? The samples are installed as a ZIP file which you have to un-ZIP.
thank you! I've been using BCG for years and years, love it. This is nice for those apps that don't need *all* the bcg features. A step in the right direction for sure. Much appreciated!
>Are the classes comprising the Fluent UI components denoted as such, by being in a separate namespace, or requiring a special compiler flag or #include to use?
No, there is no separation via namespace. Basically, if you are not using any of the CMFCRibbon* classes, you are probably not using the fluent UI.
Note that the license is a no-cost, royalty-free licence which is obtained via a simple click-through agreement on the Office UI site.
> No, there is no separation via namespace. Basically, if you are not using any of the CMFCRibbon* classes, you are probably not using the fluent UI.
Thanks, Pat. FWIW, I think that without such a separation, a lot of developers will use those classes without realizing the legal implications. The above guideline is helpful, but I think that company lawyers are going to want something more definite.
To clarify why this is a concern, Microsoft is saying "If you use the Fluent UI, you need a license", but I haven't found an clear definition of what constitutes "Using the Fluent UI". Without a clear definition, the license requirements create a lot of FUD, since a developer can't tell whether they need a license or not.
> Note that the license is a no-cost, royalty-free licence which is obtained via a simple click-through agreement on the Office UI site.
The issue isn't the cost; it's that the license incorporates the Fluent UI design guidelines as legal requirements. Depending on the application, the costs of making it conform to those requirements could be prohibitive.
Re: Monday, April 07, 2008 9:17 AM by SvenC
# re: Visual C++ 2008 Feature Pack Released!
[Updated: a more accurate answer than the previous posting]
Yes, you can control it:
By default any projects depend on RTM bits. To make them depend on the feature pack set _BIND_TO_CURRENT_CRT_VERSION to 1 and /or _BIND_TO_CURRENT_MFC_VERSION to 1
George and Damien
If you have been using the Boost libraries then you will probably not see anything major that's not already
>Did you make sure to un-ZIP the new versions of the sample source? The samples are installed as a ZIP file which you have to un-ZIP.
Thanks, I didn't realize that. I also changed globalData to afxGlobalData, in older examples with success.
On other issues:
I had posted during beta testing about a bug in menu button and got a response from a VC team member that they added to the bug list. The release version still has the same problem of not disabling an item of the menu button. I do the following and expect the specified item to be disabled and no notifications of click:
m_btnMenu.m_hMenu = pSubMenu->GetSafeHmenu();
Since a Grid class is not supplied, I requested for some suggestion on Somasegar's blog. Perhaps I should have posted it here:
>Hi Pat/VC++ Team,
>Could you recommend some third party Grid controls that are easy to work with in MFC? I have been using the MSFlexgrid ActiveX control since VS97, but is not supplied with VS 2008.
I'm very happy to see the new BCG controls. But I'm trying to test out the random number generation that is part of TR1, and no dice.
If I create a new MFC project from scratch, accept the default settings, then use
anywhere, I get 117 errors and 6 warnings, (listed at the end). Since I'm doing all this from scratch with the default settings, I think this is a bug.
errors/warning beginning with:
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : warning C4229: anachronism used : modifiers on data are ignored
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2365: 'operator new' : redefinition; previous definition was 'function'
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2491: 'new' : definition of dllimport data not allowed
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2078: too many initializers
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2440: 'initializing' : cannot convert from 'int' to 'void *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2143: syntax error : missing ';' before '('
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2226: syntax error : unexpected type 'size_t'
1>c:\program files\microsoft visual studio 9.0\vc\include\xdebug(33) : error C2059: syntax error : ')'
Ok, so I installed a fresh copy of VS2008, followed by the MFC Feature Pack. Everything installs fine (though it took forever and a day).
I run through the new MFC app wizard, and make a few basic style decisions, etc. I'm just looking to see how the BCGSoft classes run, after all (compared to the CodeJock libs we've been using). So I hit F5 to compile and run, and....
It doesn't work. Immediately, I get assertions in one of the new MFC/BCGSoft Ribbon classes, followed by a "failed to create empty document" error. I haven't added a single line of code, mind you - just the default output from the MFC wizard.
Hi Big E,
Could you let us know what kind of changes you made so that we can reproduce the issue on our side.
Feel free to send me the project straight ahead at aymans at microsoft dot com
> It doesn't work. Immediately, I get assertions in one of the new MFC/BCGSoft Ribbon classes...
Sorry to hear that the wizard is not creating a viable application for you. Rest assured that we tried to make the wizard as robust as possible, but there are literally hundreds or thousands of combinations of options. Can you let me know specifically which combinatino of options you selected in the wizard so I can reproduce the problem and fix it? Thanks!
Visual C++ Libraries Development