Click here to Skip to main content
12,547,922 members (48,594 online)

peterchen - Professional Profile


    Blog RSS
Peter is tired of being called "Mr. Chen", even so certain individuals insist on it. No, he's not chinese.

Peter has seen lots of boxes you youngsters wouldn't even accept as calculators. He is proud of having visited the insides of a 16 Bit Machine.

In his spare time he ponders new ways of turning groceries into biohazards, or tries to coax South American officials to add some stamps to his passport.

Beyond these trivialities Peter works for Klippel[^], a small german company that wants to make mankind happier by selling them novel loudspeaker measurement equipment.

Where are you from?[^]

Please, if you are using one of my articles for anything, just leave me a comment. Seeing that this stuff is actually useful to someone is what keeps me posting and updating them.
Should you happen to not like it, tell me, too
  • 29 Sep 2004: MFC/C++ Aug 2004


Below is the list of groups in which the member is participating

CodeProject Insiders
United States United States
No Biography provided
Group type: Collaborative Group
This member has Group Status: Member


Soap Box 1.0
United States United States
This _private_ forum is set up to be a place where political and social issues, including American politics and global warming, can be discussed in a reasonably civil manner. Anyone who has been an active member* of Code Project for six months is welcome to apply for membership but this forum does not tolerate trolling posts, or posters who wish to be disagreeable. Those who choose to become uncivil, insulting, or childish will be warned and, for repeated violations, removed from membership.

* That means that you have posted regularly or had at least one article published.

For member complaints and suggestions, contact the forum administrator at ...
cp[soapbox1[0 at
Remove the [ characters and replace them by a period.
Group type: Social Group
This member has Group Status: Member



For more information on Reputation please see the FAQ.


Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege, and the given member types also gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilverAdmin
Bypass spam checks when posting contentsilversilversilversilversilversilversilverSitebuilder, Subeditor, Mentor, Protector, Editor, Staff, Admin
Store personal files in your account areaplatinumplatinumSitebuilder, Subeditor, Supporter, Editor, Staff
Have live hyperlinks in your biographybronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Edit a Question in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Edit an Answer in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Delete a Question in Q&AYesSubeditor, Protector, Editor, Admin
Delete an Answer in Q&AYesSubeditor, Protector, Editor, Admin
Report an ArticlesilversilversilversilverSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubeditor, Mentor, Protector, Editor, Staff, Admin
Edit other members' articlesSubeditor, Protector, Editor, Admin
Create an article without requiring moderationplatinumSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending QuestionProtector, Admin
Approve/Disapprove a pending AnswerProtector, Admin
Report a forum messagesilversilverbronzeProtector, Editor, Admin
Approve/Disapprove a pending Forum MessageProtector, Admin
Create a new tagsilversilversilversilverAdmin
Modify a tagsilversilversilversilverAdmin

Actions with a green tick can be performed by this member.

GeneralCPQuote: groupthink Pin
peterchen14-Apr-07 11:03
memberpeterchen14-Apr-07 11:03 
GeneralRe: CPQuote: groupthink Pin
Ravel H. Joyce2-Oct-07 1:33
memberRavel H. Joyce2-Oct-07 1:33 
GeneralRe: CPQuote: groupthink Pin
peterchen2-Oct-07 9:52
memberpeterchen2-Oct-07 9:52 
GeneralRe: CPQuote: groupthink Pin
Ravel H. Joyce2-Oct-07 17:23
memberRavel H. Joyce2-Oct-07 17:23 
GeneralJust a test Pin
peterchen14-Jan-06 13:22
memberpeterchen14-Jan-06 13:22 
GeneralGreat Multithreading article Pin
peterchen21-May-05 22:35
memberpeterchen21-May-05 22:35 
GeneralMy inofficial CP FAQ Pin
peterchen11-Nov-04 8:49
memberpeterchen11-Nov-04 8:49 
GeneralQ: Why don't CPians joint to run (OpenSource) projects? Pin
peterchen21-Nov-04 23:35
memberpeterchen21-Nov-04 23:35 
GeneralDoes the article rating suck? [modified] Pin
peterchen24-May-06 6:59
memberpeterchen24-May-06 6:59 
GeneralUnder what licence code and articles are published on codeproject? Pin
peterchen23-Jul-07 13:31
memberpeterchen23-Jul-07 13:31 
GeneralIntrinsic Interlocked functions Pin
peterchen2-Oct-04 9:53
memberpeterchen2-Oct-04 9:53 
GeneralFold with us PinPopular
peterchen7-Sep-04 20:14
memberpeterchen7-Sep-04 20:14 
GeneralRe: Fold with us Pin
brahmma27-Feb-07 21:22
memberbrahmma27-Feb-07 21:22 
GeneralRe: Fold with us Pin
peterchen28-Feb-07 10:34
memberpeterchen28-Feb-07 10:34 
GeneralRe: Fold with us Pin
brahmma6-Mar-07 21:35
memberbrahmma6-Mar-07 21:35 
GeneralRe: Fold with us Pin
peterchen7-Mar-07 10:01
memberpeterchen7-Mar-07 10:01 
GeneralRe: Fold with us Pin
Mike Hankey17-Apr-08 13:27
memberMike Hankey17-Apr-08 13:27 
GeneralRe: Fold with us Pin
Nelek1-Jun-08 6:22
memberNelek1-Jun-08 6:22 
GeneralRe: Fold with us Pin
peterchen2-Jun-08 8:01
memberpeterchen2-Jun-08 8:01 
GeneralHow to become a C++ Pro Pin
peterchen17-Aug-04 11:51
memberpeterchen17-Aug-04 11:51 

As response to a question how to learn C++ and become a "pro", "not only using DOS commands, but also MFC"

The following is a roadmap to "Mastering C++" - how I would teach it.
Some people might want to reorder the list which is fine with me - it all
depends on the teacher and the tools.

Chapter (I) Learning the language

  1. basic language: type system, control structures, functions, scope.
  2. basic concepts: programming style, structuring your program using
    functions, the difference between contract, declaration and implementation
  3. language: pointers.

    pointer arithmetic, referencing, dereferencing, pointers vs. references,
    pointer to pointer, adress of pointer, allocating raw memory, etc.

    If you didn't succeed with (3): learn pointers

    If you don't get it the third time, give up. Really. I am serious.*
  4. debugging. assert, trace, using a debugger, distrusting yourself,
    acquiring some programming style.
  5. language: Function overloading.
  6. language: classes. Member functions, constructor, destructor
  7. concepts: encapsulation, simple object design, encapsulating state
  8. lanuage: learn exceptions **
  9. repeat concepts: good programming style, contract vs. declaration
    vs. implementation
  10. concepts: inheritance, polymorphy
  11. concepts: "enhanced" object design with the new knowledge
    (exceptions and polymorphy)
  12. language: some refined points

    const-correctness, default constructor, copy constructor vs. assignment
    operator, how to make a class behave like a built in type (but skip operator
  13. language: templates: function templates, class templates, template
  14. get an introduction on the STL (standard template library, which
    makes the biggest part of the C++ run time library)
  15. language: ok, now, just as sugar, operator overloading, and how to
    make types truly act like built-ins
  16. libraries: refine your knowledge on the STL


NOW you are ready to leave the console window


Chapter (II) ...but also MFC

  1. Windows API basics: This helps understanding some of the
    mumbo-jumbo and awkwardnesses in the MFC much better

    Event Driven Programming, Windows, Window Handles, Window Messages

    (you can omit *creating* windows here, since this is a painful task made much
    easier by frameworks - but the rest is important to understand and makes
    working with the MFC easier).

    GDI, standard controls etc.
  2. Do the MFC "Scribble" tutorial, just following the main path (up to
    "printing" or so). Don't try to understand everything, just get a feeling for
    the "flow".
  3. Do the "Scribble" tutorial again, this time exploring the background
    explanations etc.


Chapter (II) Become a Pro

  1. Notice that, once you are here, you are the last remaining person on earth
    doing MFC Wink | ;)
  2. Learn enhanced concepts: Exception Safety, Patterns etc. and all the fine
    parts I have forgotten above
  3. Learn "Industry Power" stuff: Automated Tests, Version Control,
    Finalizing, and everything that belongs to running a larger project.


<b>Warning:</b> this course is a pain. In the ass, in the back, in your
fingers, everywhere. Yet, it's IMO one of the shorter routes to a pro. To be
true, you could start with th MFC stuff pretty much after (I)-(j), but this
makes you only half-a-programmer, and you might acquire some misfeats that are
hard to get rid of later.

The order of the list itself clearly shows some drawbacks of the C++ language,
namely, the position of exceptions, and especially the STLBoth are standard
tools that should be introduced much earlier, but require good understanding of
the basic language features.

*) I pretty much agree with the thought that understanding pointers
needs a certain "wiring" of the brain. All other stuff in C++ can be learned
by a decently intelligent person. Pointers are different, you either get them,
or you don't. If you can't do pointers, C++ will be a pain all the

**) that's really late, to late. They are an important tool for error
handling - and people should learn it as early as possible. However, it
doesn't make much sense wihtout a good grasp on scope and code flow. I would
do exceptions right after (b), but books/courses don't do it without classes.

we are here to help each other get through this thing, whatever it is Vonnegut jr.

sighist || Agile Programming | doxygen

GeneralRe: How to become a C++ Pro Pin
call_me_Cincin_please29-Mar-10 23:19
membercall_me_Cincin_please29-Mar-10 23:19 
GeneralThe Kid Sister rule Pin
peterchen31-Jul-04 9:00
memberpeterchen31-Jul-04 9:00 
GeneralRe: The Kid Sister rule Pin
S Douglas30-Apr-06 19:53
memberS Douglas30-Apr-06 19:53 
GeneralUsing CString outside of MFC Pin
peterchen4-Jul-04 0:44
memberpeterchen4-Jul-04 0:44 
GeneralThat guy Pin
peterchen27-Jun-04 14:08
memberpeterchen27-Jun-04 14:08 
GeneralRe: That guy Pin
Dick.lee Solucky28-Nov-04 16:09
memberDick.lee Solucky28-Nov-04 16:09 
GeneralRe: That guy Pin
Dick.lee Solucky28-Nov-04 16:29
memberDick.lee Solucky28-Nov-04 16:29 
GeneralRe: That guy Pin
Dick.lee Solucky28-Nov-04 17:01
memberDick.lee Solucky28-Nov-04 17:01 
GeneralRe: That guy Pin
peterchen30-Nov-04 10:46
memberpeterchen30-Nov-04 10:46 
GeneralThanks Pin
Dick.lee Solucky1-Dec-04 14:21
memberDick.lee Solucky1-Dec-04 14:21 
Generalabout your project Pin
Dick.lee Solucky1-Dec-04 15:18
memberDick.lee Solucky1-Dec-04 15:18 
GeneralEuroCPian Education Trail Pin
peterchen17-Mar-04 12:40
memberpeterchen17-Mar-04 12:40 
GeneralRe: EuroCPian Education Trail Pin
Jonathan de Halleux17-Mar-04 22:05
memberJonathan de Halleux17-Mar-04 22:05 
GeneralGod Pin
peterchen3-Mar-04 11:26
memberpeterchen3-Mar-04 11:26 
GeneralRe: God Pin
Paul Watson19-May-04 7:15
sitebuilderPaul Watson19-May-04 7:15 
GeneralThe most important thing about online dating Pin
peterchen26-Feb-04 5:48
memberpeterchen26-Feb-04 5:48 
GeneralRe: The most important thing about online dating Pin
Mazdak1-Mar-04 0:20
memberMazdak1-Mar-04 0:20 
GeneralRe: The most important thing about online dating Pin
peterchen1-Mar-04 6:26
memberpeterchen1-Mar-04 6:26 
GeneralPlonklist Pin
peterchen28-Jan-04 5:54
memberpeterchen28-Jan-04 5:54 
GeneralCalling C++ code from C (VC6) Pin
peterchen17-Dec-03 8:17
memberpeterchen17-Dec-03 8:17 
GeneralDon't read this if you don't want to read this Pin
peterchen11-Nov-03 11:23
memberpeterchen11-Nov-03 11:23 
GeneralRe: Don't read this if you don't want to read this Pin
Paul Watson30-Nov-03 21:17
sitebuilderPaul Watson30-Nov-03 21:17 
GeneralRe: Don't read this if you don't want to read this Pin
peterchen23-Jan-04 12:41
memberpeterchen23-Jan-04 12:41 
GeneralRe: Don't read this if you don't want to read this Pin
Paul Watson5-Feb-04 2:52
sitebuilderPaul Watson5-Feb-04 2:52 
GeneralRe: Don't read this if you don't want to read this Pin
peterchen5-Feb-04 3:25
memberpeterchen5-Feb-04 3:25 
GeneralRe: Don't read this if you don't want to read this Pin
Paul Watson5-Feb-04 5:53
sitebuilderPaul Watson5-Feb-04 5:53 
GeneralRe: Don't read this if you don't want to read this Pin
peterchen5-Feb-04 6:30
memberpeterchen5-Feb-04 6:30 
GeneralRe: Don't read this if you don't want to read this Pin
Paul Watson5-Feb-04 21:23
sitebuilderPaul Watson5-Feb-04 21:23 
GeneralRe: Don't read this if you don't want to read this Pin
peterchen28-Apr-04 8:58
memberpeterchen28-Apr-04 8:58 
GeneralDoing the things I never wanted to do Pin
peterchen24-May-04 14:29
memberpeterchen24-May-04 14:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Advertise | Privacy | Mobile
Web02 | 2.8.161021.1 | Last Updated 22 Oct 2016
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid