the format of functions you can call with CreateRemoteThread have to be 'int (_stdcall *)(int)' I believe.
Starting a remote thread in notepad works fine for me :S
If you want to get really advanced, have a look at 'Manual Mapping', it's a method of loading Dll's without calling LoadLibrary(thus bypassing some basic anticheats).
It's done by writing the entire Dll into the target aplication, then fixing up the RVA and starting it.