Ok than we are talking about the same thing and I've already postet the answer:
Your VB Code does exactly what the answer tells the TE on stackoverflow
Code:
Dim p As Process = Process.GetProcessesByName("WolfTeam.bin")(0) // 1. Open the process using OpenProcess -- if successful, the value returned is a handle to the process, which is just an opaque token used by the kernel to identify a kernel object. Its exact integer value (0x5c in your case) has no meaning to userspace programs, other than to distinguish it from other handles and invalid handles.
For Each moz As System.Diagnostics.ProcessModule In p.Modules // 3. Use EnumProcessModules to enumerate the list of all modules in the target process.
If moz.FileName.IndexOf("csh") <> -1 Then // 4. For each module, call GetModuleFileNameEx to get the filename, and compare it with the executable's filename.
label1.Text = moz.BaseAddress.ToString // 5. When you've found the executable's module, call GetModuleInformation to get the raw entry point of the executable.
End If
Next
It's all described in the StackOverflow thread.
Also, I still see no problem why the heck you need to use C++. I mean really you are basically doing the same as in vb, just that it will take much more code, and much longer (i.e. waiting for an answer in this thread has already taken you 2 days).
There are only very few things C++ can that vb can't (i.e. writing DLL's to be injected). Everything else can also be done in VB, and in most cases the VB solution is easier.