从char *到Handle

时间:2013-10-09 08:01:59

标签: c++ pointers handle inter-process-communicat

我想将管道句柄发送到其他进程。要发送指针,我将其转换为字符串。

   sprintf(handleToChar, "%p", handle);

因此,如果句柄的值为0x00043c,则会得到"00043c"的内存。我发了。

我以"00043c"的正确形式收到它。

我无法将其转换回来。我再次尝试使用sprintf,但这是错误的,因为我后来意识到了。

 sprintf((char*)handle, "%s", handleToChar); // <-- wrong

我认为atoi会做,但字符串中也可能有字符。所以它又失败了。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你根本做不到。无法在进程之间共享地址。

如果要在两个进程之间共享资源,则必须创建共享资源,或者保存/发送其他数据,以便其他进程可以创建自己的句柄。

答案 1 :(得分:0)

尝试使用boost interprocess,可以创建共享内存