Я не могу получить оболочку ZeroMQ C ++ для получения составных сообщений. Тот же код, использующий версию C, прекрасно работает, но приводит к исключению без объяснений с C ++. Код многоэтапной обработки выглядит следующим образом:
int _tmain(int argc, _TCHAR* argv[])
{
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_REP);
socket.bind("tcp://*:5555");
while(true) {
// the following two lines lead to exception
zmq::message_t request;
socket.recv(&request);
//zmq_msg_t message;
//zmq_msg_init (&message);
//zmq_recv (socket, &message, 0);
}
return 0;
}
Это чрезвычайно просто; эта версия не работает. но если я закомментирую первые две строки в цикле while и раскомментирую закомментированный в данный момент код (версия C), это сработает.
Это Windows XP sp3, Zeromq 2.1.1 и Visual Studio 2010 Express.
Если я отправляю отдельные сообщения, обе версии работают нормально.
Что я делаю неправильно?