0

パイプハンドルを他のプロセスに送りたい。ポインタを送信するために、文字列に変換しました。

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

したがって、ハンドルの値が である場合0x00043c、 でメモリを取得します"00043c"。送ります。

の正しい形で受け取ります"00043c"

元に戻すことができません。もう一度 sprintf を使ってみたのですが、後で気がついたのでそれは間違いです。

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

私はそうすると思っatoiていましたが、文字列にも文字が含まれている可能性があります。それでまた失敗。

どうすればできますか?

4

2 に答える 2

2

あなたは単にできません。プロセス間でアドレスを共有することはできません。

2 つのプロセス間でリソースを共有する場合は、共有リソースを作成するか、他のプロセスが独自のハンドルを作成できるように他のデータを保存/送信する必要があります。

于 2013-10-09T08:03:25.510 に答える