我想将管道句柄发送到其他进程。为了发送指针,我将其转换为字符串。
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/