ClassWizard Jr. does not display message IDs with VC6 Platform Toolset

Mar 27, 2011 at 1:47 AM
Edited Mar 27, 2011 at 1:47 AM

Running VC6 SP6 and VS2010 SP1 with latest Daffodil release.

I can reproduce this problem by the following procedure:

  1. Create new MFC project in VC6 using with all default options in MFC AppWizard (exe) [click Finish on first window]
  2. Import project (.dsw) in VS2010 using default options
  3. Project > Properties > Configuration Properties > General > Platform Toolset > v60
  4. Project > Class Wizard - message IDs disappear after switching tabs [this seems to be a glitch in ClassWizard itself], never to return
  5. Project > Rescan Solution [this is pretty slow: "Please wait while IntelliSense and browsing information are updated."]
  6. Re-open Class Wizard and for class CAboutDlg, the first three tabs now display these messages [previously blank in step 4]:
    • You cannot add any commands to this no CCmdTarget derived class.
    • You cannot add any messages to this windowless class.
    • There are no standard virtual functions to override.

Is VC6 a special case needing additional settings to get message IDs to display properly?

Other Observations

  • Projects compile and link perfectly fine using VC6 backend
  • In Resource Editor, message IDs are also missing in the Properties pane under Control Events and Messages
  • After switching back to Platform Toolset v100, message IDs become populated corectly in both Class Wizard and Properties (v80 and v90 work too)
  • Message IDs were also missing before installing VS2010 SP1 [i.e., please don't feel pressured to download/install SP1 before trying to reproduce the error!], but I didn't test very thorougly before installing SP1 [hoped it would fix the problem]

Fantastic project!  It works better than VS's native "/useenv" workaround--my projects (100's of cpp files) require a full rebuild after modifying just one cpp file when using /useenv, but not Daffodil!  Thank you!!

Mar 28, 2011 at 3:07 AM
Edited Mar 28, 2011 at 5:16 AM

I can reproduce the problem. It happens only when targeting v60. v70 and later seem to work as expected. Changing the platform toolset back to any newer platform seems to get things working again, so a temporary switch could be a workaround to the problem.

I took a look at the class wizard code (in <VSInstallDir>\Common7\IDE\Extensions\Microsoft\VC\ClassWizard\10.0\ClwWizard.dll), but I couldn't find any specific code that I could identify as the culprit.  I suspect that there are some hard coded filenames or paths that are incorrect for the VS 6 folder structure, and that this causes the parsing to fail when V60 is selected, but I can't say for sure.

In any case, I recommend reporting this to Microsoft as a bug. I'd be surprised if they spent any time on it, but you never know.