2
J'ai essayé d'utiliser la poignée hPipe
comme suit l'exemple here:Comment convertir un tuyau poignée file_descriptor (int) pour la protobuf de Google
hPipe = CreateNamedPipe(
lpszPipename, // pipe name
PIPE_ACCESS_DUPLEX, // read/write access
PIPE_TYPE_MESSAGE | // message type pipe
PIPE_READMODE_MESSAGE | // message-read mode
PIPE_WAIT, // blocking mode
PIPE_UNLIMITED_INSTANCES, // max. instances
BUFSIZE, // output buffer size
BUFSIZE, // input buffer size
0, // client time-out
NULL);
ZeroCopyOutputStream* raw_output = new FileOutputStream(hPipe);
CodedOutputStream* coded_output = new CodedOutputStream(raw_output);
Mais obtenir une erreur:
'google::protobuf::io::FileOutputStream::FileOutputStream(int,int)' : cannot convert parameter 1 from 'HANDLE' to 'int'
Et voici la signature:
FileOutputStream(int file_descriptor, int block_size = -1);
Comment convertir un handle en file_desc riptor en C++?
MISE À JOUR
J'ai essayé le recommandé _open_osfhandle
mais ne semble pas correct, les rapports:
error C2664: '_open_osfhandle' : cannot convert parameter 1 from 'HANDLE' to 'intptr_t'
Quels fichiers d'en-tête dois-je inclure en plus de 'io.h'? Maintenant, il signale '_O_TEXT' dans '_open_osfhandle (hPipe, _O_TEXT);' comme non défini .. – user198729
Il semble que vous ayez aussi besoin de '#include'. –
Semble '_open_osfhandle' n'est pas le bon, maintenant il signale' l'erreur C2664: _open_osfhandle: ne peut pas convertir le paramètre 1 de HANDLE à intptr_t' – user198729