Strict Standards: Redefining already defined constructor for class wpdb in /www/htdocs/w006f36b/wp-includes/wp-db.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/cache.php on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /www/htdocs/w006f36b/wp-includes/cache.php on line 400

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 553

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el($output) in /www/htdocs/w006f36b/wp-includes/classes.php on line 674

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w006f36b/wp-includes/theme.php on line 505
MauriceK, caught between dev and drums » To nestle with Microsoft…

October 9, 2006

To nestle with Microsoft…

Category: Development — kaldor @ 10:24 pm

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

Some of us got to know, that since some time Microsoft offers his Visual C++ solution free as a so called “Express Edition” to every dev being interested. As I am willing to get into DirectX development (specially audio stuff), I thought, this might be the perfect point to start.

Being a litte bit overmotivated I installed the German Version, which is not that bad, but if you get used to work with english applications, you might get confused by not knowing, what for instance some options may mean in your native language :)

To get started, you basically need these things:

This is a lot of stuff to download and install, so be prepared, that it might take some time. Imagine we have everything installed by now, great. So we can start… No! We cannot. As Microsoft offers its stuff for free, of course you are not able to develop a Win32 Windows Application with it. “What the …?” you might think, and yes, I agree. Luckily I found a great article at the Microsoft Webpage about how to patch everything. As there are some issues with it and I do not know, how long Microsoft is willing to share their knowledge, here is the working solution of how to get things set up:

  1. Update the Visual C++ Directories by modifying the VCProjectEngine.dll.express.config file located in the \vc\vcpackages subdirectory of the Visual C++ Express install location. Please make sure that you also delete the file “vccomponents.dat” located in the “%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0″ if it exists before restarting Visual C++ Express Edition. (The last step was not needed in my case)
  2. Edit corewin_express.vsprops file (found in C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) to AdditionalDependencies=”kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib”
  3. Edit AppSettings.htm in %ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\” by outcommenting these lines:

// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true;

Note: In the last step the folder was called 1031 and not 1033 in my case. But it worked nethertheless. It is strange, that you have to select Console Application to create a GUI project, but it is working. Maybe there are some additional tweaks possible to transform the wizards in a more senseful way.

Ok, now he set everything up, fire up the first testproject and build it, now we should see a nice GUI, shouldn’t we? No, of course we do not. All you see is an error, that the C Runtime is missing (MSVCR80D.dll). So I needed to cheat there also. You can find this file somewhere in your Visual Studio folder. Of course nicely hidden. Copy it to system32 and fire up the build again. Damn it! Now we get another error. Browsing through the web gives you the result, that you should only build your application in Release version. Nice idea, we are great developers, but debugging might still be a nice thing to do in the meantime. After some time I realized there are only two options you need to change to be finally able to debug your application.

  1. disable incremental linking in the Linker options of the project (this pushes another linking warning, which you can get rid of by the next step)
  2. Set the debugging information format to generate a pdb file (compile option /Zi). The default is /ZI which enables /EDITANDCONTINUE which got us into trouble.

Release Builds were no problem even before, but now everything should be set up.

At a first look the Visual C++ compiler is much faster than the MinGW solution, which is a port of gcc for Microsoft Windows. Additionally it does not block the system like MinGW does. For instance I am able to use my DVB-T card and watch TV while compiling. That is not possible with gcc.

I hope that these steps may help you setting up everything faster, if you might get into the same troubles.

That was all for tonight, until next time…

2 Comments »


  1. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

    Hah, noch so einer mit der Express Edition. Die “Tweaks” hab ich nach der Reinstallation ganz vergessen anzuschmeissen. Ne Windows-Forms-Anwendung hab ich aber anstandslos zum kompilieren bekommen… Aber alles ohne Platform SDK. Nuja, wollt eh mal mehr in Richtung C#/.Net kucken. ;)

    Comment by emwe — October 11, 2006 @ 8:09 am


  2. Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w006f36b/wp-includes/formatting.php on line 76

    Big thanks for that article!
    When you wrote it, I wasn’t interested at all in that Windows stuff, to be honest ;)
    But now where things have changed, this article will help me. Will try that right tomorrow, as I don’t have Internet on my notebook here (poor router ;) ).

    Regards! We hear from each other - then in german ;D

    Das Jott

    Comment by DasJott — January 7, 2007 @ 11:46 am

RSS feed for comments on this post. | TrackBack URI

Leave a comment

XHTML ( You can use these tags):
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .