2014-10-30 95 views
2

我正在使用ZeroMQ x86在Windows 8,VS 2012上连接测试客户端/服务器应用程序。不幸的是,我在初始化连接时遇到了一些麻烦。现在我简单地复制(和错误报告略有延长)的例子hwserver.c和使用下面的代码来初始化:调用zmq_socket返回NULL和errno 14(错误地址)

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位二进制文​​件的兼容性问题?

+0

您是否@antipattern检查了**构建64位二进制文​​件的注释**,如>>> http://lists.zeromq.org/pipermail/zeromq-dev/2010-June/004037.html ? – user3666197 2014-10-30 16:50:43

+0

感谢您的评论。然而,我不认为这适用于这里,因为我使用的是预构建的二进制文件,而且,我明确地链接到32位二进制文​​件(我的应用程序指出,它与64位版本不兼容) – antipattern 2014-10-30 16:59:32

+0

您是否试过复制并运行来自示例的代码根本没有任何修改? – Jason 2014-10-30 17:02:45

回答

2

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

+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/18122343) – alptugd 2017-12-01 10:35:12

+0

我不同意这个观点,这不是我的问题的答案。事后回想起我原来的问题,它发生了什么。 – antipattern 2018-01-10 15:11:32

1

所以,一个良好的数额调试,并试图复制在新项目的错误后,我想出了以下解决方案:

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

相关问题