Libraries: ZeroMQ asynchronous communication

 

ZeroMQ asynchronous communication:

version 1 of bindings to zeromq library

Author: seth

 

Hi,

great work! I'm trying to run the example with the precompiled library however I'm getting the DLL load error:

16:44:55 zmq EURUSD,Daily: loaded successfully
16:44:55 zmq EURUSD,Daily: initialized
16:44:55 zmq EURUSD,Daily: cannot load library 'zmq_bind.dll' (error 126)
16:44:55 zmq EURUSD,Daily: expert stopped
16:44:55 zmq EURUSD,Daily: deinitialized
16:44:55 zmq EURUSD,Daily: uninit reason 0
16:44:55 zmq EURUSD,Daily: removed

Any idea why I'm getting this? I do have enable DLL calls in options and other scripts can load from experts/libraries folder. I'm on windows XP 32 bit and metatrader 4 from MIG build 229.

Kind regards,

Michal

 

I assume you have zmq_bind.dll in experts/libraries? You will also need to place libzmq.dll in c:/windows/system32 (or wherever else all the other system dlls are). Alternatively, you can set some environment variable (dontn remember which one) which will allow windows to find libzmq.dll. Libzmq.dll is the zeromq library precompiled for 32 bit. While metatrader will be able to find and load zmq_bind.dll, from there on windows dll loader takes over, and it doesnt know that is should look in experts/libraries to find libzmq.dll.

In a couple of days im going to be releasing a more complete version which will include polling on a zeromq socket with a timeout, multiple message receive/sending, publish sockets, inproc sockets, and pipe sockets. Notice that you could potentially poll also on a regular socket, but i dont have the code to test that, so i wont make bindings for that part....

 

Of course all my files are in place however I'm missing some. I've run the Dependency Walker and it seems that few files are missing (see the image below). Can you please add them to the distribution?

Kind regards,

Michal


 

Michal:

Of course all my files are in place however I'm missing some. I've run the Dependency Walker and it seems that few files are missing (see the image below). Can you please add them to the distribution?

Kind regards,

Michal


I've downloaded the missing dlls but still no joy. The problem seems to be:

Error: The Side-by-Side configuration information for "c:\metatraders\mig4\1\experts\libraries\ZMQ_BIND.DLL" contains errors.

Whatever this means.

Kind regards, Michal

 

it seems you are missing microsoft visual runtime. I forgot to mention that. I personally have microsoft visual studio c++ 2008 express installed, so i havent tested doing it this way.

Download from here

http://www.microsoft.com/downloads/en/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en

 
Starry:

it seems you are missing microsoft visual runtime. I forgot to mention that. I personally have microsoft visual studio 2008 express installed, so i havent tested doing it this way.

Download from here

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en


As for the side-by-side configuration error, i havent heard of this. I searched it and it appears to be a problem with some microsoft patch - if one doesnt have visual studio express installed, that happends. I run microsoft on virtualbox and i dont know if i have updated my xp to fix this problem. If downloading the visual runtime doesnt work, i might have to recompile everything after updating ... Notice that it works on my xp...
 

Could you, please post the non-debug version of your library? I think this will solve most of the problems described in the comments.

And I think it will be helpful for everyone.

Regards,

Kosciej

 
kosciej:

Could you, please post the non-debug version of your library? I think this will solve most of the problems described in the comments.

And I think it will be helpful for everyone.

Regards,

Kosciej


I have no clue if downloading the file described in the previous post works. It is definitely necessary. It shouldnt matter if it is debug or run dll, except maybe a litle difference in speed. Are you having

similar problems? Notice that i also included the cmake script to build the windows version, so you could build it also. Of course, you need the appropriate lib files for zeromq. Notice that debugging someone elses problems remotely requires small steps, so you shouldnt get put off if it takes a lot of comments to get working. Feel free to ask questions. Notice that the examples work for me, so i have no clue... But i also have visual studio 2008 installed. Also notice that I dont usually check this more than once per day, so if you post something expect it to take at the best a day in response. So make the question count!

 
kosciej:

Could you, please post the non-debug version of your library? I think this will solve most of the problems described in the comments.

And I think it will be helpful for everyone.

Regards,

Kosciej


Woops, youre correct! Will upload release versions and explanation in a bit.

EDIT: updated to version 3.1 (waiting to be published, it will say version 3.1 right below 3.0 version announcement). Basically, a side by side configuration error can be debugged by opening windows event view. And there you can see that there are some side by side configiurations, and that it is attempting to load a debug assembly, but of course the user only has the release assembly. so... also, when a dll is build, one can look at the dll.manifest built and you can see whether it is a release or debug build. One has to explicity state in cmake to build a release version, and that has been done.

 

Excellent choice, Starry. I believe this tool shows a lot of promise both in communication to and from other apps.

I haven't been able to get it working yet. Commando shows nothing on my screen.

Better documentation wouldn't hurt a bit! :)

Please also check your PMs.


Best,

Merlin

Reason: