2014-10-30 48 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的是對的第一個條目與項目相關聯。