Click here to Skip to main content
Email Password   helpLost your password?

Introduction

Visual C++ 2005 Express Edition was released on 11/7/2005. It has a great native C++ compiler and a smart editor. The best thing is that it is free. We can use it for our WTL programming for free. I posted the procedure for the same here on 11/9/2005. Now, I am submitting it to CodeProject.

Step by step

  1. Download and install Visual C++ 2005 Express Edition from MSDN.
  2. Download and install the Platform SDK, and update the Visual C++ setting as detailed here.
  3. Update the Visual C++ directories in the Projects section of the Options dialog box. Add the ATL path to the Include files (the path shown is the default, use the path to your actual location):
    C:\Program Files\Microsoft Platform SDK\include\atl
  4. Change atlwin.h and atlbase.h in the ATL folder of the Platform SDK install as follows:
  5. Download and install WTL from SourceForge:
  6. Download the AppWizard for Visual Studio 2005 Express from the link above this page, unzip and copy the JS file into the WTL\AppWiz folder, double click it to install the WTL Wizard into VC Express.

Enjoy WTL and VC Express free!

Some Problems

Because VC++ Express doesn't include a "Resource Editor", you will get an error when creating a Dialog or FormView. But, once the project and source files are created, you can open the project directly. If you can find a free resource editor, please tell me.

Comments: rvRoman told us of a free resource editor, and tsehonkit gave us a right link.

History

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
NewsATL 7.1 available!
T800G
12:24 27 Aug '09  
Now you can get ATL 7.1 from the Windows Driver Kit Version 7.0.0 (Insert "Homer Simpson Woohoo!" here).
No need to modify atlwin.h or atlbase.h, and you get all the good stuff like CAtlFile etc., free as in a free beer.Cool

Since the WTL wizard generates files for ATL3 (a bit old ver. but works with VC2008 without a glitch), you need to tweak generated stdafx.h a bit.
// Support for VS2005 Express & SDK ATL
#ifdef _WTL_SUPPORT_SDK_ATL3
//////////////////////////////////
// #define _CRT_SECURE_NO_DEPRECATE//<--not neccesarry
// #pragma conform(forScope, off)//
//////////////////////////////////
#pragma comment(linker, "/NODEFAULTLIB:atlthunk.lib")
#endif // _WTL_SUPPORT_SDK_ATL3

#include <atlbase.h>
#include <atlstdthunk.h> //<--must add this here!!! (ATL3 defines _stdcallthunk in atlbase.h, ATL7 in atlstdthunk.h)

Hopefully new WTL wizard will add macro switches for ATL 3/7 (_ATL_VER == 0x0300 /_ATL_VER == 0x0800).

Optionally, you can define __AllocStdCallThunk/__FreeStdCallThunk as
namespace ATL
{
inline void * __stdcall __AllocStdCallThunk()
{
return ::VirtualAlloc(0, sizeof(_stdcallthunk), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
}

inline void __stdcall __FreeStdCallThunk(void *p)
{
if (p) ::VirtualFree(p, 0, MEM_RELEASE);
}
};

it works in 32 bit and is (haven't tested myself) 64 bit-ready, just like dataman64bit said in a previous post.
NewsWTL 8.1
T800G
11:41 12 May '09  

WTL 8.1 , new release May 7, 2009
Cool
IT'S ALIVE!
IT'S ALIVE!
MUAHAHAHAHAHA Big Grin

Just did a quick run, and now it compiles cleanly at warning level 3.Thumbs Up
Generalx64 warning!
dataman64bit
6:43 24 Aug '08  
When you're using windows x64 and compiling for windows x64, don't replace __AllocStdCallThunk and __FreeStdCallThunk with HeapAlloc/HeapFree. By default, windows x64 has memory execution protection and will NOT run thunk code ATL is using and your application process will lock with no error message. Use this code instead:

void* __stdcall __AllocStdCallThunk()
{
LPVOID mem = VirtualAlloc(0, sizeof(_stdcallthunk), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if (!mem) return 0;
return mem;
}

void __stdcall __FreeStdCallThunk(void* ptr)
{
if (!ptr) return;
VirtualFree(ptr, 0, MEM_RELEASE);
}

This code marks allocated memory as executable and application will work again. Thanks for your thanks Smile
GeneralATL only in Platform SDK 2003
T800G
15:26 2 Aug '08  
Just for the record, ATL (version 3) comes only with the Platform SDK 2003 (R2), newer versions are only vanilla win32.:(
Somebody in Microsoft probably realized that you don't need VS Pro if you can get hold of ATL files/headers (even "old" version 3 headers work great with WTL 8.0 and compile at level 3 warnings in VC2005 Express), so go get them while they're still available.Cool
Generalvideo streaming
agachouch
11:47 15 Jul '08  
hallo erstmal,
ich möchte ein video(h.264/oder egal was für ein videocodec) peer to peer über internet streamen(RTP ODER udp),und hierfür ein programm in c++ oder c# schreiben , das diese funktion "streaming" ausführt.
ich wäre für jede Hilfe sehr dankbar.

danke voraus.
agach
Generalwindows vista + Windows (aka Platform) SDK + atlthunk.lib + winnt.h errors -- what worked for me
Member 2747349
5:22 28 Apr '08  
While trying to get some Direct Show stuff working on Vista with VC++ 2008 Express Edition on Vista and the new renamed Windows SDK (known b4 as Platform SDK) I got errors like "Cannot open atlthunk.lib"
Which many others seemed to have got for different VS versions.....
The one which says comment the pragma does not work for the versions i have...bcause the header doesnt have such a pragmaConfused.

What worked: create a dummy empty lib in the VC++ version you are using. Shucks
DO NOT copy the lib to where you want - you get some manifest errors ... either create the lib in the dir you want or give the path of where it was placed by VC.

I dont know if its related but after this i got some errors in winnt.h in the line
typedef void * POINTER_64 PVOID64;

i commented it and replaced it with
typedef void * __ptr64 PVOID64;

and it worked.
QuestionVc 2008 express and WTL ?
Ivan Mladenovic
2:39 19 Feb '08  
Hello !
Has anyone tried to make WTL Work with visial c++ express 2008 edition?

www.tigar.com

QuestionRe: Vc 2008 express and WTL ?
Kin Hoon
3:38 4 Mar '08  
It seems that ATL headers are not included in latest Windows SDK anymore.

Since WTL depends on ATL, does it means that we are no longer able to use VC Express + Windows SDK + WTL to build GUI application? Correct me if I am wrong.

Any other free GUI framework that we can use to develop Windows based GUI application? Any suggestion?
GeneralRe: Vc 2008 express and WTL ?
Ivan Mladenovic
1:27 5 Mar '08  
Hm ... , My primary concern is WTL , but other options are: WxWidgets , SmartWin++ , FLTK , maybe Qt becaouse of licensing restriction ( gpl-ed and commertial licenese ) .
Anyway , I can always use VC express 2005 .

www.tigar.com

GeneralRe: Vc 2008 express and WTL ?
98440622
3:44 16 Mar '08  
Yesterday, my computer is attacked by virus. I deceided to update the OS from WINXP(sp2) to VISTA. It seemed that all things went well first until i was porting my project based on WTL to the new platform. I downloaded the latest SDK and installed it. After that, I installed VS2008 express and began to build my project while I found there's no ATL head files in the SDK directiory! Does someone have some soultion for my problem?
AnswerRe: Vc 2008 express and WTL ?
tsehonkit
7:53 23 Aug '08  
Yes, I just use windows WDK_6001_18001 for atl. Modifly the wtl setupexpress80.js script from version 8 to version 9. All other procedure are the same as this topic. Then I can compile a simple dialogue base wtl for testing. So, you can try and see if there are any other problems exist. I am not a wtl programmer and just start my learning. one more thing, I did not follow the auther to modifly the atl code. Just install WDK and setup the correct path for atl inside VC 2008 express only.
QuestionWTL wizzard doesn't work
Member 1650253
23:34 31 Jan '08  
When I want to crate a WTL-project I get the following message :
Line 394
Character 2
Error Object attended (in French "Erreur objet attendu")
Code 0
URL fille///C:/WTL/AppWiz/Files/HTML/1053/default.htm
When I look in the Html code of default.htm
I find on line 394 setDirection();
This is in the function :
function InitDocument(document)
The result is that I get Only the default page and cannot make choices.
Can anyone help me?
AnswerRe: WTL wizzard doesn't work
oromero
6:17 8 Jul '08  
Juste replace in the wizard *.html the GetHostLocale by your languageId (1033 for french) at the top and the bottom files.
QuestionError while creating a plugin for windows media player.
amiya das
3:08 4 Jan '08  
Hi,

I am using VC++ express edition 2005,WMPPSDK 9.0,WMFSDK 9.0 and PSDK.

i took the code from
http://download.microsoft.com/download/4/8/f/48f553fc-cdca-403c-b6aa-09de38559cd3/Connect_Plugins_Samples.EXE[^]

when i executed project wmplayerpluginagent it gave me the following errors.

------ Build started: Project: WMPlayerPluginAgent, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3242) : error C2065: '_Module' : undeclared identifier
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3242) : error C2228: left of '.Lock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3244) : error C2228: left of '.Unlock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3366) : error C2228: left of '.CreateInstance' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3373) : error C2228: left of '.Lock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3375) : error C2228: left of '.Unlock' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3641) : error C2228: left of '.m_csTypeInfoHolder' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3658) : error C2228: left of '.AddTermFunc' must have class/struct/union
type is ''unknown-type''
e:\program files\microsoft platform sdk\include\atl\atlcom.h(3667) : error C2228: left of '.m_csTypeInfoHolder' must have class/struct/union
type is ''unknown-type''
Build log was saved at "file://e:\Connect_Plugins_Samples\WMPlayerPluginAgent\Debug\BuildLog.htm"
WMPlayerPluginAgent - 9 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

can any one tell me why it is giving this error.

AS

GeneralPlatform SDK = Windows SDK?
reinux
0:47 8 Sep '07  
The Windows Vista SDK (which is 1gb) doesn't seem to include atlbase.h. Am looking for the Platform SDK? Because I can only find the Windows 2003 Platform SDK.

It drives me nuts how Marketing keeps changing product names.
NewsA Guide to WTL8.0 with VC++2005 express
wbkang
8:42 23 Jun '07  
Set up vc++ with platform SDK.
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/[^]

Add 'include/atl' to your directory settings of vc++.

download wtl 8.0.
http://www.microsoft.com/downloads/details.aspx?FamilyID=E5BA5BA4-6E6B-462A-B24C-61115E846F0C&displaylang=en[^]

in your directory of wtl(default-c:\wtl8.0), execute appwiz/setup80.js or setup80x.js depending one which one works for you.

add c:\wtl80\include to your include directory in vc++ settings.

done! try to build wtl app with app wizard.
QuestionOK, but where are atlcoll.h etc?
CCanadaK
19:21 3 Apr '07  
A project that I need to build includes the files atlcoll.h, atlstr.h and atltypes.h. Alas, even though I followed the instructions by the letter and installed the complete "Platform SDK for Windows Server 2003 R2", these files are nowhere to be found. Any tips on how to work around this?

Thx,
Chris

AnswerRe: OK, but where are atlcoll.h etc?
Ed Gadziemski
11:30 22 Jan '09  
The headers you mentioned don't come with VC Express Edition, only Professional (maybe Standard?) and above.
Questionmissing the atlthunk.lib ?
Firkraag
22:02 11 Nov '06  
I got as far as to linking but now I've been getting the error:
LINK : fatal error LNK1104: cannot open file 'atlthunk.lib'
I have Microsoft Platform SDK for Windows Server 2003 R2 installed.
What more should I get?
AnswerRe: missing the atlthunk.lib ?
Nuno Esculcas
9:20 9 Feb '07  
Edit your altbase.h there is #pragma comment directive, that queries
for atlthunk.lib - comment this.

this is an instruction made in this page by the author, you probably missed to comment the line like i do Poke tongue


GeneralRe: missing the atlthunk.lib ?
ppaijwar
9:41 28 Nov '07  
Thanks man, you saved my time.Big Grin
GeneralFree resource editor. Excellent.
bigshlacker
21:31 24 Oct '06  
Here is a good free resource editor. It is currently being actively developed.

http://www.resedit.net/[^]

Enjoy.
GeneralRe: Free resource editor. Excellent.
Vladimir Svrkota
9:00 7 Nov '06  
I tried to use it's earlier version (1.2.3) with VC 2005 Express and WTL but it didn't work - couldn't even open rc filesFrown. It all started to look promising when they came up with 1.3.1 and added support for include paths. I made a few test WTL projects in VC 2005 Express and all rc files opened just fine. When rc file is saved all #pragmas, #ifdefs and #endifs are removed, but the file still compiles under VC 2005 Express. It's REALLY worth a try Smile.


--
Vladimir Svrkota,
CardWare
Novi Sad, Serbia.

GeneralRe: Free resource editor. Excellent.
Batmanstolemydog
10:54 31 May '07  
This is a quote from their main page:

"An include file always named resource.h (it is impossible to change it), witch contains the ID definitions."

If they can't spell "which" correctly, then I do not trust them to generate my code.

Nana Nana Nana Nana dog thief!
GeneralRe: Free resource editor. Excellent.
greegree
22:15 2 Sep '07  
How do you set the include path of it ?


Last Updated 13 Jan 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2010