I'm a big fan of the book C++/CLI in Action which has a couple of useful sample chapters online, at that address.
This intro on CodeProject is a good starting point.
The author of C++/CLI in Action has a number of articles on CodeProject, scroll down to the C++/CLI section on his index.
The Wikipedia article on P/Invoke has a number of reasons why you might not want to use that approach, with which I agree:
- loss of typing support by the compiler
- possible data type or alignment issues as you have to map types by hand
- need to pin garbage-collected objects
The best starting point on MSDN is the summary article.