1. This question makes no sense at all ^^
For reading:
hProcess is the process handle that you get by using OpenProcess.
lpBaseAddress is the addy you want to read from
cast it to LPVOID: (void*)0xB4DF00D
lpBuffer is a pointer to the buffer you want to read into.
char mybuffer[32]; //now use &mybuffer in ReadProcessMemory.
nSize is the number of bytes you want to read, if you use the mybuffer from above you'd fill in 32 here.
lpNumberOfBytesRead is a pointer to an integer, just pass null for this, you don't really need it.
For writing:
the exact same as above, but instead of reading into the buffer you write the buffer into the memory, so make sure you give it a value ^^.
char mybuffer[5] = "\x90\x90\x90\x90\x90";
2. Yes, but it's 10x harder to do then with C# or VB.