Download MetaTrader 5
To add comments, please log in or register
Hundreds of articles will help you to create a trading robot. Come and read them!
Carl Schreiber
5938
Carl Schreiber 2014.02.24 13:22 

Hi,

I wrote my TimeShift-include-file. It is saved in ...\MQL4\Include\..

I compiled it with no errors and no warnings, an can use it by

#include <TimeShifts.mqh>

But if I want to use it in an imported way:

#import "TimeShifts.ex4"
void checkTime(datetime gmt);
datetime getBrokerTimeShift(); // return in sec the TimeShift to GMT of the Broker                              
#import

It cannot be used??

I can compile the indi. that 'imports' it without errors and only some warnings: 'i' is not used..

But starting this indicator I get this in the expert-tab:

2014.02.24 14:07:20.247 unresolved import function call
2014.02.24 14:07:20.247 Cannot call 'TimeShifts.ex4::checkTime', 'TimeShifts.ex4' is not loaded

Beside that I can't find the "TimeShifts.ex4" in \Include (nor in \Experts), neither in the /portable-Folder-structure nor in the default folder-structure?

What shall I do, what went wrong?

Gooly

PS: If I define in such an include-file global variables how can I use them directly in the loading indi. or EA and not by an extra defined function that just gives back this value?

Ovo Cz
2958
Ovo Cz 2014.02.24 13:52  

When you need to create a library to be used with #import, it must be marked as library and have a defined interface. Did you specify that?

Anyway, the mqh is intended for source code inclusion, and it does not even need to compile alone. But you may include it into your library as well, even if the library contained only the library directive and the inclusion.

Carl Schreiber
5938
Carl Schreiber 2014.02.24 14:05  
Ovo:

When you need to create a library to be used with #import, it must be marked as library and have a defined interface. Did you specify that?

Anyway, the mqh is intended for source code inclusion, and it does not even need to compile alone. But you may include it into your library as well, even if the library contained only the library directive and the inclusion.

Yes I defined:

#property library

and the mqh-file is saved in \Libraries but even there no ex4?

Alain Verleyen
Moderator
28536
Alain Verleyen 2014.02.24 15:07  
gooly:

Yes I defined:

and the mqh-file is saved in \Libraries but even there no ex4?




It has to be a mql4 source file not a mqh.
Ian Venner
2583
Ian Venner 2014.02.24 16:01  

Yes that is the problem. When you create an include file, the file is saved uncompiled as .mqh in the MQL4\Include folder. When you create a library file it is a regular .mq4 file compiled to an .ex4. and saved in MQL4\Librarys. You could open a new library file in Metaeditor, copy paste the source code from your include file, compile the library file then try to import it to the main file.

Carl Schreiber
5938
Carl Schreiber 2014.02.24 21:47  

ok, thanks, understood,

Gooly

/
To add comments, please log in or register