Proper learning of C++/MFC/Visual Studio
-
OK, I've had to learn on the job doing this and that, done some Win32, some MFC, C++ but without a background in proper design and usage, and I'd like to step back and learn properly. The issues I have are that I'm often confused by things that I don't even know are different, like when someone says "VS 2005 complies C++ better than VC++6". My experience of VS6 is that it did everything fine and I got used to where most things are (though I am still not very clued up on it, at least I have the MS book for it - could not find an equivalent for VS2005). I also get mixed up between when I'm using C++, when I'm using STL, when MFC/raw Win32 etc. I've got quite a few books, some unread, and some read but wondered if anyone who was an expert could give a clear path (or a link to sites that would give this info) to step back, find out about what the current C++ standard is, what's changed from what I may know now (and not even realise), generic info about the development environment and Visual Studio in particular (in Vista, still not happy with it!), going on to C++ learning (more formally with more depth of knowledge), good things to do to try and get practice, perhaps online courses or tutorials or workbooks?, then info on the different things like STL, MFC etc, how they fit in with the bare bones, all the way through to developing good quality apps and code. When I read software design articles (eg some of the ones at flounder) I am inspired to be able to do this properly but have fallen into the trap (not my own fault really) of having to learn 'just enough' without understanding it all and fixing things by brute force or by asking for help or digging through the help files/docs (by the way in places the MSDN help from F1 in VC6 is woeful!) anyway, I hope someone can take a few minutes to help me. I know these kind of questions often get a generic one line answer, and I can understand that to some extent, but I'd really like to get some help with a more structured plan for building a proper skillset up, perhaps some bad habits will be harder to break but on the other side, some concepts won't be so alien to me having done some fiddling many thanks, Lee
-
OK, I've had to learn on the job doing this and that, done some Win32, some MFC, C++ but without a background in proper design and usage, and I'd like to step back and learn properly. The issues I have are that I'm often confused by things that I don't even know are different, like when someone says "VS 2005 complies C++ better than VC++6". My experience of VS6 is that it did everything fine and I got used to where most things are (though I am still not very clued up on it, at least I have the MS book for it - could not find an equivalent for VS2005). I also get mixed up between when I'm using C++, when I'm using STL, when MFC/raw Win32 etc. I've got quite a few books, some unread, and some read but wondered if anyone who was an expert could give a clear path (or a link to sites that would give this info) to step back, find out about what the current C++ standard is, what's changed from what I may know now (and not even realise), generic info about the development environment and Visual Studio in particular (in Vista, still not happy with it!), going on to C++ learning (more formally with more depth of knowledge), good things to do to try and get practice, perhaps online courses or tutorials or workbooks?, then info on the different things like STL, MFC etc, how they fit in with the bare bones, all the way through to developing good quality apps and code. When I read software design articles (eg some of the ones at flounder) I am inspired to be able to do this properly but have fallen into the trap (not my own fault really) of having to learn 'just enough' without understanding it all and fixing things by brute force or by asking for help or digging through the help files/docs (by the way in places the MSDN help from F1 in VC6 is woeful!) anyway, I hope someone can take a few minutes to help me. I know these kind of questions often get a generic one line answer, and I can understand that to some extent, but I'd really like to get some help with a more structured plan for building a proper skillset up, perhaps some bad habits will be harder to break but on the other side, some concepts won't be so alien to me having done some fiddling many thanks, Lee
-
OK, I've had to learn on the job doing this and that, done some Win32, some MFC, C++ but without a background in proper design and usage, and I'd like to step back and learn properly. The issues I have are that I'm often confused by things that I don't even know are different, like when someone says "VS 2005 complies C++ better than VC++6". My experience of VS6 is that it did everything fine and I got used to where most things are (though I am still not very clued up on it, at least I have the MS book for it - could not find an equivalent for VS2005). I also get mixed up between when I'm using C++, when I'm using STL, when MFC/raw Win32 etc. I've got quite a few books, some unread, and some read but wondered if anyone who was an expert could give a clear path (or a link to sites that would give this info) to step back, find out about what the current C++ standard is, what's changed from what I may know now (and not even realise), generic info about the development environment and Visual Studio in particular (in Vista, still not happy with it!), going on to C++ learning (more formally with more depth of knowledge), good things to do to try and get practice, perhaps online courses or tutorials or workbooks?, then info on the different things like STL, MFC etc, how they fit in with the bare bones, all the way through to developing good quality apps and code. When I read software design articles (eg some of the ones at flounder) I am inspired to be able to do this properly but have fallen into the trap (not my own fault really) of having to learn 'just enough' without understanding it all and fixing things by brute force or by asking for help or digging through the help files/docs (by the way in places the MSDN help from F1 in VC6 is woeful!) anyway, I hope someone can take a few minutes to help me. I know these kind of questions often get a generic one line answer, and I can understand that to some extent, but I'd really like to get some help with a more structured plan for building a proper skillset up, perhaps some bad habits will be harder to break but on the other side, some concepts won't be so alien to me having done some fiddling many thanks, Lee
To answer a few of your questions, you're using STL when you have to use include any of the STL container headers, such as vector, deque, map, queue, etc. I believe you're using MFC if you have to use anything that requires afxwin.h. As for when you're using C++, well, you're either using C, C++, or Managed C++ unless you're doing some kind of crazy interop work. If you use templates or make use of a C++ compiler, then you're using C++, if you have to use any handles, then you're using Managed C++ (^ vs. *).
-
OK, I've had to learn on the job doing this and that, done some Win32, some MFC, C++ but without a background in proper design and usage, and I'd like to step back and learn properly. The issues I have are that I'm often confused by things that I don't even know are different, like when someone says "VS 2005 complies C++ better than VC++6". My experience of VS6 is that it did everything fine and I got used to where most things are (though I am still not very clued up on it, at least I have the MS book for it - could not find an equivalent for VS2005). I also get mixed up between when I'm using C++, when I'm using STL, when MFC/raw Win32 etc. I've got quite a few books, some unread, and some read but wondered if anyone who was an expert could give a clear path (or a link to sites that would give this info) to step back, find out about what the current C++ standard is, what's changed from what I may know now (and not even realise), generic info about the development environment and Visual Studio in particular (in Vista, still not happy with it!), going on to C++ learning (more formally with more depth of knowledge), good things to do to try and get practice, perhaps online courses or tutorials or workbooks?, then info on the different things like STL, MFC etc, how they fit in with the bare bones, all the way through to developing good quality apps and code. When I read software design articles (eg some of the ones at flounder) I am inspired to be able to do this properly but have fallen into the trap (not my own fault really) of having to learn 'just enough' without understanding it all and fixing things by brute force or by asking for help or digging through the help files/docs (by the way in places the MSDN help from F1 in VC6 is woeful!) anyway, I hope someone can take a few minutes to help me. I know these kind of questions often get a generic one line answer, and I can understand that to some extent, but I'd really like to get some help with a more structured plan for building a proper skillset up, perhaps some bad habits will be harder to break but on the other side, some concepts won't be so alien to me having done some fiddling many thanks, Lee
ldsdbomber wrote:
having done some fiddling
Some people would say that I learned almost everything I know by fiddling. The key is knowing what to fiddle with.:laugh: If you want the full works on C++ Mr Stroustrup is your man. It's his baby. http://www.amazon.com/s?ie=UTF8&keywords=History&rh=n%3A565718%2Ck%3AHistory&page=1[^] If this is the latest one it's got lots of STL goodness as well. For advanved STL usage and scary template stuff see www.boost.org[^] For Microsoft technologies like Win32 and MFC then MSDN is really the definitive source. It took me a few years to get all the technologies separated out in my head and get a grip on what's what. I guess it's pretty normal.:)
Nothing is exactly what it seems but everything with seems can be unpicked.