Skip to main content

Installing the WTL Application Wizard in Visual C++ 2008 Express Edition

I love Google Chrome, it is fast, elegant and beautiful. After I realized that it was written using WTL, I felt quite keen to learn about this library.

I downloaded WTL 8.0 from SourceForge.net and Visual C++ 2008 Express Edition from Microsoft.com only to realise that there is no WTL Wizard support for Visual C++ 2008 Express Edition.

WTL 8.0 ships with WTL/ATL application wizard but the setup script only supports the Visual C++ 2005 Express Edition (setup80x.js). However, the good news is that you can make it work with Visual C++ 2008 Express Edition in few simple steps:

  1. Make a copy of the setup80x.js and rename it to setup90x.js.
  2. Open setup90x.js up and do a global search and replace from “8.0” to “9.0”.
    image
  3. Save the file and execute it.

If you are as lucky as I am, you should see a dialog that tells you that the wizard has been successfully installed.

image

Now, when you run Visual C++ 2008 Express Edition and go File –> New –> Project… you should now see the new WTL/ATL Application Wizard.

image

For some reason when I tried to create a new solution from the wizard, the generated code doesn’t compile. It gives me the following error:

stdafx.h(33) : error C2065: '_stdcallthunk' : undeclared identifier

To fix this problem I had to manually add this include:

#include <atlstdthunk.h>

into the generated stdafx.h, right after this line

#include <atlbase.h>

This worked on my machine anyway :)

Comments

  1. 0heheh, I remember doing this. same thing for visual studio 2010? :)

    ReplyDelete
  2. Not sure zxcvbn, I haven't tried vs 2010 yet, let me know if you have :)

    ReplyDelete
  3. For Visual Studio 2010, the Visual Studio team (apparently) dropped the C++ 'Tools\options\Projects and Solutions\C++ Directories' which is where you would normally include the WTL include directories (WTL\Include) and moved it into the individual project settings. Given this, I have yet to been able to get the WTL wizards to work with VS 2010 as they cannot find the WTL directories.

    What might work, though, is copying the WTL files into the VS 2010 directories. Of course, a newer version of WTL would have to be handled the same so this would really be a hack.

    Good luck.

    ReplyDelete
  4. I made it to work for VS2008 installation by modifying the line 69 & 86 as show below in setup80x.js

    var strVC8Key = "HKLM\\Software\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir";
    var strDestFolder = FileSys.BuildPath(strValue, "\\vcprojects");

    line 69) removed VCExpress and modified it as per the registry where visual studion vc dir is available
    line 86) removed VCExpress directory

    ReplyDelete
  5. This is cool, seems a lot more organized, planned, and fair compared to the Wizard101 Award stuff that happened a few months ago.

    ReplyDelete

Post a Comment

Popular posts from this blog

Load Testing ASP.NET Sites with JMeter

Following my previous post about using JMeter to test MOSS, I tried to figure out what are the bare minimum requirements of using JMeter against a plain ASP.NET website. I wrote a very simple ASP.NET web application with just a button, a text fields and a static label. This application displays the content of a text file in the static label when it loads and write content of the text field back to the file when the button is clicked.I found all I need to do in order to script this using JMeter is to extract __VIEWSTATE and __EVENTVALIDATION fields then send them back in the update request. My JMeter test plain looks like this:

Load Testing SharePoint (MOSS) Sites with JMeter

I have used JMeter for load testing few non-ASP.NET web sites before, however I could not get it to work with ASP.NET web sites. This is mainly due to ASP.NET ViewState and event validations, which stops a recorded JMeter script from being played back.Recently I worked on a MOSS project and we were looking for tools to perform load testing on the server. Many people said the load testing tool in Microsoft Team System for Testers works well with MOSS. However, it is quite expensive so I decided to give JMeter another go. After several hours of hacking, I actually got it to work and here’s how I did it.My test page is the pretty standard MOSS edit document property screen with few extra text fields added and the goal here is to use a JMeter script to change the document properties. Once I have a working script, I can configure JMeter to fire hundreds of instances of this script simultaneously to simulate the user workload.As shown in the screenshot below, the test plan contains two HTTP…

COBOL Tutorial 00300 – Edited Fields

As I have mentioned in the last tutorial, you use edited fields in COBOL to format data fields into human-readable display strings. Let’s start with a numeric field:01 NUMERIC-FIELD PIC 999999V99.and some COBOL code that set and display the field value:MOVE 1234.5 TO NUMERIC-FIELD. DISPLAY NUMERIC-FIELD: ' NUMERIC-FIELD.As we’ve demonstrated in the previous tutorial, unused digits are padded with ugly zeros:NUMERIC-FIELD: 001234.50Let me put my C# programmer hat on again (apologies to Java, ruby, python, C/C++, assembly and many other programmers who don’t like C#), when we have to format a variable for display, we often use the string.Format method with a formatting string containing special formatting characters, which is “0,0.00” in the following example:// returns 1,234.50 string.Format("{0:0,0.00}", 1234.5)Now let’s come back to COBOL, an edited field is basically a normal COBOL data field with a formatting string in the picture clause instead of the “A”, “X” or “9”…