I would not say that C++ is pure OOP. Unlike some langauges ( JAVA ),C++ gives the programmer the luxury of choosing to go OOP or just procedural. C++ lets the programmer decide what style of programming is best suited for the problem at hand. One thing that can be said about C++, is that it can do everything that C could do, plus a whole lot more. Unfortunatly, you cannot say the same thing about C. You can use C++ as a safer C, but you can also take advantage of C++'s powerful OOP capibilities. It all depends on the problem you are trying to solve. MFC stands for Microsoft Foundation Classes. A long time ago, win32 programmers could only code win32 apps with the SDK. When you code with SDK you are using the raw win32 API to implement your windows. Now this was just fine for short apps that did not have alot of complicated widgets etc...but coding a big project with many dialogs and controls can become very cumbersome if you are using the raw API. In the end, you find yourself writting huge amounts of code. Microsoft's answer was the creation of the MFC. They virtually wrapped every control in a class. As you already may know,OOP can really diminish the complexity,development, and maintainace of big projects. I don't want to compare VisualBasic and VC++, but if you ever coded in VB you realize how easy it is to slap together a GUI. Well, MFC is kind of similar. You visually construct your window, and you drag and drop the controls that you need. Then when you have your GUI looking all nice and neat, you write support code that will make up the logic of each control. MFC really makes big comlicated win32 apps more trivial to code for. But there are some cases where the MFC just gets in the way, where it throws in too much support code, and is totally uneccessary. As your last question concerning assembly, I don't believe that it is a neccessity to learn assembly in conjuncton with C\C++. x86 assembly etc...can give you a speed advantage while giving you a deeper low-level understanding of the machine you are coding for. But with these advantages you sacrifice readibility,development time,faster maintainace and portibility. The only real reason for using assembly over C\C++ is for speed, but often you can always increase speed by improving your algorithms and messing with your compilers optimizing settings. Still you can only gain a better understading of the machine by learning assembly. You can even embed assembly into your C\C++ program. To compile assembly, you need an assembler. MASM is one of the more popular assembers on the windows platform. Mike L.G.
mlg400@blazemail.com