UPDATE: A free IDE that works well with the VC++ 2003 Toolkit and the Windows Platform SDK is called "Code::Blocks":
http://wiki.codeblocks.org/index.php?ti ... Blocks_IDE
Older post:
Older Using the free C++ compiler from Microsoft without a VC++ IDE package like VC++ 2002 will require downloading the
Windows Platform SDK since AutoHotKey requires "windows.h". One will then need to provide path info to the SDK as mentioned here:
http://www.stepmania.com/wiki/Build_Wit ... ual_Studio
Since an integrated IDE is not included, I plan to use the Visual C++ 2003 Toolkit with my Visual C++ 2002 Standard edition as described below:
Quote:
Go into Tools -> Options... -> Projects folder -> VC++ Directories. Under 'Show directories for:', select 'Executable files'. Insert the Visual C++ Toolkit's bin directory (C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin) at the top, so these files are found first and used, when the GUI starts looking for them.
http://xona.com/2004/06/29.htmlAlternatively, one could go to Amazon or eBay and get Visual C++ 2003 Standard, which is included with the book
Microsoft Visual C++ .Net Deluxe Learning Edition Version 2003.
BTW, in June 2005, one poster (James Gregory) said that he was able to get the source code working with the free Express version of Visual Studio 2005:
http://www.autohotkey.com/forum/viewtopic.php?p=23983At the time, he didn't provide any tips on how he performed the migration. However, based on the error codes I have seen, my guess (as a C++ novice) is that it would not be very difficult for an experienced C++ programmer. Below is a list of the errors I got with AutoHotKey's 4/7/06 release in Visual C++ 2005 Express edition:
Quote:
Compiling...
WinGroup.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
window.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\window.cpp(25) : error C2143: syntax error : missing ';' before '{'
.\source\window.cpp(25) : error C2447: '{' : missing function header (old-style formal list?)
var.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
util.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
SimpleHeap.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
script_registry.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
script_menu.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
c:\ahk_4706\source\window.h(49) : error C2143: syntax error : missing ';' before '{'
c:\ahk_4706\source\window.h(49) : error C2447: '{' : missing function header (old-style formal list?)
script_gui.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
c:\ahk_4706\source\window.h(49) : error C2143: syntax error : missing ';' before '{'
c:\ahk_4706\source\window.h(49) : error C2447: '{' : missing function header (old-style formal list?)
script_expression.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
script_autoit.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\script_autoit.cpp(31) : error C2143: syntax error : missing ';' before '{'
.\source\script_autoit.cpp(31) : error C2447: '{' : missing function header (old-style formal list?)
.\source\script_autoit.cpp(1741) : error C2440: '=' : cannot convert from 'const char *' to 'char *'
Conversion loses qualifiers
script2.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\script2.cpp(33) : error C2143: syntax error : missing ';' before '{'
.\source\script2.cpp(33) : error C2447: '{' : missing function header (old-style formal list?)
.\source\script2.cpp(3884) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\source\script2.cpp(3991) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\source\script2.cpp(3991) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
script.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\script.cpp(2187) : error C2065: 'g_CommentFlag' : undeclared identifier
.\source\script.cpp(6983) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
keyboard_mouse.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
c:\ahk_4706\source\window.h(49) : error C2143: syntax error : missing ';' before '{'
c:\ahk_4706\source\window.h(49) : error C2447: '{' : missing function header (old-style formal list?)
.\source\keyboard_mouse.cpp(1018) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\source\keyboard_mouse.cpp(1018) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\source\keyboard_mouse.cpp(1165) : error C2065: 'u' : undeclared identifier
hotkey.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
hook.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\hook.cpp(4100) : error C2065: 'sKeybdMutex' : undeclared identifier
globaldata.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
clipboard.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
.\source\clipboard.cpp(35) : error C2143: syntax error : missing ';' before '{'
.\source\clipboard.cpp(35) : error C2447: '{' : missing function header (old-style formal list?)
AutoHotkey.cpp
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
c:\ahk_4706\source\window.h(49) : error C2143: syntax error : missing ';' before '{'
c:\ahk_4706\source\window.h(49) : error C2447: '{' : missing function header (old-style formal list?)
application.cpp
c:\ahk_4706\source\application.h(142) : error C2059: syntax error : '/'
c:\ahk_4706\source\keyboard_mouse.h(180) : error C2146: syntax error : missing ';' before identifier 'sc'
c:\ahk_4706\source\keyboard_mouse.h(180) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(180) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(187) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(189) : error C2059: syntax error : ')'
c:\ahk_4706\source\keyboard_mouse.h(189) : error C2143: syntax error : missing ')' before ';'
c:\ahk_4706\source\keyboard_mouse.h(200) : error C2146: syntax error : missing ';' before identifier 'sc'
c:\ahk_4706\source\keyboard_mouse.h(200) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(200) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(245) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(246) : error C2059: syntax error : ')'
c:\ahk_4706\source\keyboard_mouse.h(246) : error C2143: syntax error : missing ')' before ';'
c:\ahk_4706\source\keyboard_mouse.h(264) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(275) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(300) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(307) : error C2065: 'sc_type' : undeclared identifier
c:\ahk_4706\source\keyboard_mouse.h(307) : error C2146: syntax error : missing ')' before identifier 'aSC'
c:\ahk_4706\source\keyboard_mouse.h(307) : error C2059: syntax error : ')'
c:\ahk_4706\source\keyboard_mouse.h(308) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(309) : error C2146: syntax error : missing ';' before identifier 'TextToSC'
c:\ahk_4706\source\keyboard_mouse.h(309) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(309) : error C2371: 'sc_type' : redefinition; different basic types
c:\ahk_4706\source\keyboard_mouse.h(309) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(321) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\keyboard_mouse.h(322) : error C2146: syntax error : missing ';' before identifier 'vk_to_sc'
c:\ahk_4706\source\keyboard_mouse.h(322) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(322) : error C2371: 'sc_type' : redefinition; different basic types
c:\ahk_4706\source\keyboard_mouse.h(322) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\keyboard_mouse.h(323) : error C2146: syntax error : missing ')' before identifier 'aSC'
c:\ahk_4706\source\keyboard_mouse.h(323) : error C2059: syntax error : ')'
c:\ahk_4706\source\script.h(1298) : error C2065: 'suffix' : undeclared identifier
c:\ahk_4706\source\hotkey.h(158) : error C2146: syntax error : missing ';' before identifier 'mSC'
c:\ahk_4706\source\hotkey.h(158) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hotkey.h(158) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hotkey.h(159) : error C2146: syntax error : missing ';' before identifier 'mModifierSC'
c:\ahk_4706\source\hotkey.h(159) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hotkey.h(159) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(118) : error C2146: syntax error : missing ';' before identifier 'sc'
c:\ahk_4706\source\hook.h(118) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(118) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(193) : error C2146: syntax error : missing ';' before identifier 'EndingSC'
c:\ahk_4706\source\hook.h(193) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(193) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(222) : error C2146: syntax error : missing ';' before identifier 'sc'
c:\ahk_4706\source\hook.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(244) : error C2061: syntax error : identifier 'sc_type'
c:\ahk_4706\source\hook.h(248) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(249) : error C2146: syntax error : missing ',' before identifier 'aSC'
c:\ahk_4706\source\hook.h(254) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(255) : error C2146: syntax error : missing ',' before identifier 'aSC'
c:\ahk_4706\source\hook.h(257) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(257) : error C2146: syntax error : missing ',' before identifier 'aSC'
c:\ahk_4706\source\hook.h(259) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(259) : error C2146: syntax error : missing ',' before identifier 'aSC'
c:\ahk_4706\source\hook.h(262) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\ahk_4706\source\hook.h(262) : error C2146: syntax error : missing ',' before identifier 'aSC'
Related Link:
Webcast Series: The New C++ (MSDN Webcast)