I just coded a library 'mylib.ex4' in build 840.
and moved that library to build 509 and compiled an indi using that library. It compiles fine.
The I move the indi to build 840 and attach the indi to a chart it says: cannot load external program 'mylib'
What am I doing wrong ?
I have included the library like this in the indi on build 509
void myfunc (int Price);
To rephrase the question: Can I use new a library from a new build to compile an indicator on an old build ?
I am able to use a library from an old build on a new build, but is the reverse true ? or is there a compatibility mode ?
I am not trying to run on 509. Just the compilation is done on 509 with a library from 840 and then run on 840.
So something like this:
509: myprog.mq4 + mylib.ex4 = myprog.ex4 , compiles fine
840: run myprog.ex4, complains with error: cannot load external program 'mylib', although the mylib.ex4 is in the right path.
So as per your statement this looks a backward compatible issue.
This is my understanding, please correct me if wrong: During a compilation on 509, the compiler says is there a symbol in mylib for a function call ?
yes, I find it in mylib.ex4. Generate the binary and when it is run on 840, it just takes locates the function from the library
and starts using it. Now if call semantics of a library from an executable has changed between 509 and 840, then this problem could happen.
But I highly doubt it, because a library call is a very old concept and was verified during compilation on 509 which means it is able to locate
the symbol within the library. But then it complains during run time, that's why I thought maybe i'm doing something wrong.
To add comments, please log in or register