Why MetaQuotes demo server does not allow EAs to call dll functions?

 
I want my EA to call a function in a dll, but the MetaQuotes server does not allow my EA to call a function in a dll in my demo account. IsDllsAllowed() returns false. So why not, MetaQuotes?
 
Who are you mad at?

Check the options in your MT4
 

Who are you mad at?

Check the options in your MT4


"Allow DLL imports" is checked. It's a server issue.
 
Are you sure?
 
Yes, I am sure. The box you have indicated with the red mark is checked. If no one believes me, why not check to see if there is a problem? Try calling a DLL function, or call IsDllsAllowed(), from an EA running on a MetaQuotes demo account. The server is MetaQuotes-Demo.
 
Did you check IsDllsAllowed() within a script or EA? How do you check this?
 
Did you check IsDllsAllowed() within a script or EA? How do you check this?


Rosh,

First I tried calling a function imported from a dll. In the "Experts" tab of the terminal window, the message appears "Calls to dll functions not allowed." Then I deleted the call to the dll function and inserted a call to the MQL4 function IsDllsAllowed(), and the value it returned was "false." I called these functions in the Start() function, at the start of the M5 bar. I tried running the EA on a real trading account I have at Velocity4x, and their server does allow calls to functions in DLLs. However, I would like to run this EA on my MetaQuotes demo account, so I would like an explanation from MetaQuotes as to why they do not allow calls to dll functions. It seems to cripple the functionality of MQL4. I would like to implement an EA that applies a Fourier transform to price data, and that is much easier to program in C than in MQL4.
 
Interesting problem you have there. I can't see any reason the server would be involved in deciding if your EA code running on your PC should or should not be able to access a DLL also residing on your PC.

But, Metaquotes has provided many controls to their broker-side software, so I wouldn't be surprised if you turn out to be correct.

( I still doubt it, though.)
 
Something changed since yesterday; now DLLs are allowed. Maybe this thread on the MetaQuotes forum caused MetaQuotes to change the setting. I suspect it may have been a holdover from the Automated Trading Championship, in which DLLs were not allowed, and after it was over, no one remembered to enable DLLs, until now. Anyway, thanks to everyone who participated in this thread; your replies kept it at the top of the message list.
 
It is client terminal setting (no trade server setting!) to allow dlls or not
 
See function MessageBox() wich uses call of dll - https://docs.mql4.com/common/messagebox
And write simple code like this

#include <WinUser32.mqh>
  
start()
    {
     int ret=MessageBox(" Sample of dll usage", "Can you see text", MB_YESNO|MB_ICONQUESTION);
     if(ret==IDNO) return(false);
    }
 



result:

Reason: