While I do like FreeBasic and the work José and Paul have put forth, I stand with Patrice's views on C++. I only work with 64bit now and FreeBasic for 64bit is just a translator to c++ source using it's own internal format for classes and compiling with a MinGW gcc derivative. FreeBasic also deviates from the norm of ALL other Windows 64bit programming languages in treating integers as 64bit entities. For third party c/c++ libraries you still need to port the headers to FreeBasic syntax. José has run into a number of gotcha's where he needed to develop exotic work-a-rounds while creating his framework.
Patrice and myself have posted ports of the PowerBASIC Address example that are substantially smaller in size than PowerBASIC.
Don't believe all the fud you hear about bloated C++ because it is just not so!!!
While I do support Patrice's views I do not like to program in c++. I prefer BASIC syntax, therefore I use bc9Basic . The original BCX (which bc9Basic is a fork) was written in PowerBASIC and has a lot of the same syntax.