如何检索指针地址指向的地址?

时间:2013-11-04 09:42:43

标签: c# pointers memory

请考虑以下事项:

int pointer = 0x0066D378;

如何在另一个程序的内存中检索该指针地址所指向的地址?请记住,不是“指针”变量的地址,指针地址属于另一个程序,如何从当前上下文中获取地址(来自上述程序的内存)?

干杯!

2 个答案:

答案 0 :(得分:0)

测试一下。 p值将首先分配给int i的testT字符串的地址,然后作为i的值分配给p。

    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;
        }
    }

答案 1 :(得分:0)

对于进程间通信(这似乎是解决问题所需的),您可以使用匿名管道或命名管道:

匿名管道:http://msdn.microsoft.com/en-us/library/bb546102.aspx
命名管道:http://msdn.microsoft.com/en-us/library/bb546085.aspx

操作系统负责将消息从一个进程发送到另一个进程。 如果两个进程在同一台机器上运行,我建议使用匿名管道,因为它们是轻量级的。 如果它们位于同一网络上的不同机器上,则可以使用命名管道。