2011-07-03 5 views
3

は、私のC#プログラムはAnyCPUオプションでコンパイルされたと私はネイティブAPIをこのように呼び出すためにP /呼び出しを使用しています:C#AnyCPUとRead/WriteProcessMemory

[DllImport("kernel32.dll", SetLastError = true)] 
     static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out UIntPtr lpNumberOfBytesWritten); 

マイguestionは私のC#のプログラムからの読み取りと書き込みが可能です32ビットと64ビットの両方のプロセスに、anycpuでコンパイルされているので、またはそこに問題がありますか?私はそれが私がそれをテストすることはできませんので、私は32ビットのOSを持っているので、私はこれを求めています。 Thx

答えて

2

32ビットOSでは、すべてのプロセスが32ビットであるため、問題は発生しません。 64ビットOSでは、AnyCPUプロセスは64ビットで動作し、唯一の可能性のある不一致は32ビットプロセスです。しかし、64ビットポインタに32ビットアドレスを格納することは問題ありません。あなたが32ビットプロセスから64ビットプロセスでメモリを読み書きしようとしていたら、あなたは立ち往生します。しかし、あなたが反対をしているので、何の問題もありません。

関連する問題