DLL file question

 

I have recently begun learning how to program my strategies into a DLL. I am using Visual Studio/C++.

 

QUESTION 1. 

I know I can pass data from MT4 to the DLL file when I call the function such as

mydllfunction(data1, data2, data3) 

 but is there another way I can get data into the DLL for processing?

 To be more specific, I wish to pass the value of certain indicators from MT4 to the DLL.

 I could calculate the indicator value in the EA using iCustom(x,x,x), and then send the value with the function call, but with this method, if somebody looks at the EA source code/decompiles the EA they would see the indicators I am using.

 I would like to hide the indicators I am using from anybody that views the source code.

 Is there a way to do this? Can the DLL file call the iCustom() function directly?

 

QUESTION 2. 

Can a DLL file call a function that is written in the EA i.e. reverse the normal use of a DLL by importing a user defined function from the EA file into the DLL?

 

QUESTION 3.

Is it possible for a DLL function to return more than one value? for example, could it return(1,32,40)? 

 

Thank you so much in advance for your help. 

 
tentrade001:
QUESTION 1. if somebody looks at the EA source code/decompiles the EA
QUESTION 2. a DLL by importing a user defined function from the EA file into the DLL?
QUESTION 3. Is it possible for a DLL function to return more than one value?
  1. Don't give out the source. Can't decompile since Build 600
  2. No.
  3. Pass an array (reference) put return values in array.
 

Thank you for responding.

 

Why isn't it possible to decompile the 600+?

 
New compiling algorithm have been implemented.
 

I guessed that, but what makes this new compiling algorithm less decompileable than the last?

Is it not possible for somebody to create a new decompiler for the new algorithm? 

 
Better don't ask.
 
WHRoeder:
tentrade001:
QUESTION 1. if somebody looks at the EA source code/decompiles the EA
QUESTION 2. a DLL by importing a user defined function from the EA file into the DLL?
QUESTION 3. Is it possible for a DLL function to return more than one value?
  1. Don't give out the source. Can't decompile since Build 600
  2. No.
  3. Pass an array (reference) put return values in array.

With reference to "Can't decompile since Build 600"

I cannot find conclusive information about the decompile protection of Build 600+.

I am sure it can be converted to assembly language level, but can it be decompiled to MQL level or not??

Anybody with experience one way or another? MetaQuotes perhaps?

I am not interested in decompiling anything, but in protecting many hours of development! 

 

With reference to my post above concerning  "Can't decompile since Build 600".

If it has been discussed somewhere else, please point me in that direction.

Or should I start a new topic?

I feel it must have been discussed before but I could not find anything conclusive. 

 

It can be decompiled if you have the correct tools and knowledges on how to use it including time and money. Not just here. Anywhere else included.

However, as you can see, there are many indicators, EAs, scripts etc sold at https://www.mql5.com/en/market

 
deysmacro:

It can be decompiled if you have the correct tools and knowledges on how to use it including time and money. Not just here. Anywhere else included.

However, as you can see, there are many indicators, EAs, scripts etc sold at https://www.mql5.com/en/market

From what Metaquotes said, ex4/ex5 downloaded from the Market are encrypted. So it's not only a matter of decompiling it.
 
Actually that is my point. If things are easy to decompile, there won't any product at Market.
Reason: