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

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


因此,如果handle的值是0x00043c,我将得到一个带有"00043c"的内存。我发了。

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

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

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


我以为atoi可以,但是字符串中也可以有字符。所以又失败了

我该怎么做 ?

最佳答案

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

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

关于c++ - 从char *到Handle,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19266279/

10-11 16:01