调用zmq_socket返回NULL和errno 14(错误地址)

时间:2014-10-30 15:42:57

标签: c zeromq

我正在使用ZeroMQ x86在Windows 8,VS 2012上进行连接的测试客户端/服务器应用程序。不幸的是,我在初始化连接时遇到了一些麻烦。现在我只是简单地复制(并稍微扩展了错误报告)示例hwserver.c并使用以下代码进行初始化:

void* ctx;
void* rsp;
ctx = zmq_ctx_new();
DWORD dwErr = zmq_errno();
printf("Creating Context - %s\r\n", zmq_strerror(dwErr));

rsp = zmq_socket(ctx, ZMQ_REP);
dwErr = zmq_errno();
printf("Creating Socket - %s\r\n", zmq_strerror(dwErr));

调用zmq_socket时失败,返回rsp == NULLdwErr==14:地址错误。鉴于这几乎与示例代码完全相同,但它失败了,我没有答案。也许有人知道这个电话有什么问题。也许这是使用32位二进制文​​件的兼容性问题?

2 个答案:

答案 0 :(得分:2)

当我在系统上意外安装了旧版本的libzmq时,我遇到了类似的问题。一旦我删除它并安装了更新的版本,问题就消失了。

答案 1 :(得分:1)

因此,经过大量调试并尝试在新项目中重现错误后,我提出了以下解决方案:

libzmq.lib必须是即将与项目相关联的所有.lib的第一个条目。