次の点を考慮してください。
int pointer = 0x0066D378;
別のプログラムのメモリ内のそのポインター アドレスが指すアドレスを取得するにはどうすればよいでしょうか。「ポインター」変数のアドレスではなく、そのポインターアドレスが別のプログラムに属していることを覚えておいてください。現在のコンテキストで(前述のプログラムのメモリから)アドレスを取得するにはどうすればよいですか?
乾杯 !
これをテストします。p 値は、最初に int i に割り当てられ、次に i の値として p に割り当てられる testT 文字列のアドレスになります。
private static string testT = "test line to have an address";
static void Main(string[] args)
{
Test(testT);
}
static unsafe void Test(string str)
{
fixed (char* pfixed = str)
{
int i = (int)pfixed;
int* p = (int*)i;
int* c = p;
}
}