About Project

This project was first built as hobby while I was learning Win32 API programming. That was time when vb6 and similar Integrated Development Environments inspired me too much, and I was always interested in getting several tasks done in smallest possible time, especially building of Graphical User Interface for application. While learning Win32 API I decided to wrap it into C++ classes. I first searched on web for similar projects and I came through couple of them, even few people suggest me to go with MFC, WTL, or Borland C++ Builder etc. My major concern was to have something that allowed coding style similar to VB6 with the power of C++, especially using free C++ compilers such as Mingw G++, DMC, etc. I fought with generic properties to make them work just like VB and attach getters/setters to them. I adopted several codes but again they lacked few things at the end. Finally I came up with a solution of my own, and created a generic MACRO's based technique that could result in new classes for each data type rather than creating yet another type for each variable. I posted that article on codeguru and several other sites; My own unmodified and unedited version of implementation of generic properties may be found here. MSVC, Borland C++ and others do have such features already built within compilers but my favorite a free one MingW-G++ lacked it, that was the reason a new implementation was born, which was efficient enough. Most importantly a compiler that doesn't create a lot dependencies and forces developer to dispatch runtime libraries and stuff alongwith application setup program. Application built using RAD C++ is independent of any external DLL or OCX. In simple I wanted to make some library that would allow me:

        
        Form form1("Form1");
        ForProcedure proc(FormProcArgs);

        rad_main()
        
            form1.procedure = proc;
            
        rad_end()
        

and I managed to achieve this very fast. I registered this website so that others can also benefit from my effort, as well as will not have to spend much time learning core of Win32 API, yet building dependency-less applications. Library has been through several experiments the most stable version was 1.2.4 that had almost all controls required by an advanced level SDI windows application, except web-browser support (that has now been added to next version). This library has been used in several commercial projects.


After a long time being inactive in development I have decided to continue working on latest version which was left aside for about 2 years. Next version will change a lot of things in RAD C++, such as creating whole GUI from XML, and code wont look similar anymore if GUI is hardcoded for application; e.g.

        
        rad_main()
            GUI.createForm("Form1");
            GUI["form1"]
                .createChild("text1", TEXTBOX)
                .createChild("Button1", BUTTON)
            ;
            
            GUI["form1"]["text1"].text = "I am textbox";
        rad_end()
        

Targeting the controls and overall GUI elements will be even simpler as you can notice in example above. Secondly creating GUI from XML would be even better, e.g.

        
        rad_main()
            GUI.loadFromXML("GUI.xml");
            
            /* or from resources */
            GUI.loadFromXML(5444);
        rad_end()
        


Wrapping in a class would be:

        
        class myclass : public _window {
            public:

            myclass() {
                adopt( GUI["form1"] );
                procedure = proc;
            };
            friend Procedure proc(FormProcArgs);
        };      
        


News and updates on RAD C++ Version 3n may be found on Updates page.