I've gone through the liberty of writing a PE loader for you, however at the momment it still has a few bugs I will need to pan out (I am going to bed now, but when I wake up I'll take another look at it.) I will post it in the MPGH C++ section when I'm done.
Regards to a tutorial of how to write one, you're probably better off looking reading the win internals docs on the PE file format or going through MSDN. The PE file format is poorly documented by Microsoft (some whole structures defined in the winnt header are missing a description in the MSDN doc.) However, they're usually documented if you look at reverse engineering websites.