Metatrader 4 Build 1069: mql4 not supported any more?

 

Hello,

since the update to build 1069 metatrader 4 the editor accepts only mql5-syntax. What happens? I cannot compile my mql4-source any more! Please help me!

 
cbs2002:

Hello,

since the update to build 1069 metatrader 4 the editor accepts only mql5-syntax. What happens? I cannot compile my mql4-source any more! Please help me!

I still can use mql4 language for MT4 build 1069. Until now I have no problem with compiling the mq4 file. Could you show the code, please?
 

Changes in the 1069 compiler (Metaeditor v.1596) are really weird. I tried to fix the code, but it is affected too much. I do not understand the reason why the language specification changed, especially when the MQL4 development was stopped. Anyway, I wonder if it affects the MQL5, I had no time left to test it.

  • Explicit casting of structures stopped to compile in 1066. 
  • Implicit casting of structures stopped to compile in 1069.  
  • ArrayCopy of object pointers stopped to compile in 1069. It actually prevents me from using the array of pointers, and rollback to the older compiler is necessary 
Moreover, the Metaeditor stopped advancing the output pane view to the first error/warning line, but shows the first line instead (no errors shows up in this view, but rather the included files).
 
Ex Ovo Omnia:

Changes in the 1069 compiler (Metaeditor v.1596) are really weird. I tried to fix the code, but it is affected too much. I do not understand the reason why the language specification changed, especially when the MQL4 development was stopped. Anyway, I wonder if it affects the MQL5, I had no time left to test it.

  • Explicit casting of structures stopped to compile in 1066. 
  • Implicit casting of structures stopped to compile in 1069.  
  • ArrayCopy of object pointers stopped to compile in 1069. It actually prevents me from using the array of pointers, and rollback to the older compiler is necessary 
Moreover, the Metaeditor stopped advancing the output pane view to the first error/warning line, but shows the first line instead (no errors shows up in this view, but rather the included files).

Agree, is it a change ? bugs ? Please support my request.

 
Alain Verleyen:

Agree, is it a change ? bugs ? Please support my request.


Well, I support your request, though I have read similar requests several times in the past, without any effect.
 
Ex Ovo Omnia:

Well, I support your request, though I have read similar requests several times in the past, without any effect.
I know. You are one of the professional building his business around MT4/MT5, I think we need to try something (all professionals together), find and propose solutions. I am not requesting something and publishing it just to talk, I want to improve and change things, obviously I can't do it alone. We will see if Metaquotes is open or close to it.
 
Ex Ovo Omnia:

Changes in the 1069 compiler (Metaeditor v.1596) are really weird. I tried to fix the code, but it is affected too much. I do not understand the reason why the language specification changed, especially when the MQL4 development was stopped. Anyway, I wonder if it affects the MQL5, I had no time left to test it.

  • Explicit casting of structures stopped to compile in 1066. 
  • Implicit casting of structures stopped to compile in 1069.  
  • ArrayCopy of object pointers stopped to compile in 1069. It actually prevents me from using the array of pointers, and rollback to the older compiler is necessary 
Moreover, the Metaeditor stopped advancing the output pane view to the first error/warning line, but shows the first line instead (no errors shows up in this view, but rather the included files).

While Metaquotes are solving the problem with ArrayCopy, here is a temporary solution - a generalized function for copying objects of structures / classes and pointers to objects. Good luck.

template<typename D, typename S>
int ArrayCopy
(
   D & dst_array[], 
   S & src_array[], 
   int dst_start = 0, 
   int src_start = 0, 
   int count     = WHOLE_ARRAY
)
{
   int dst_size = ArraySize(dst_array);
   int src_size = ArraySize(src_array);
   
   if(src_start >= src_size)
   {
      return -1;
   }    
   
   if(count == WHOLE_ARRAY || count > src_size - src_start)
   {
      count = src_size - src_start;
   }
   
   if(dst_start + count > dst_size)
   {
      ArrayResize(dst_array, dst_start + count);
   }
   
   src_size = src_start + count;
   
   for(; src_start < src_size; ++src_start, ++dst_start)
   {
      dst_array[dst_start] = src_array[src_start];
   }
   
   return count;
}


 
Ex Ovo Omnia:

Changes in the 1069 compiler (Metaeditor v.1596) are really weird. I tried to fix the code, but it is affected too much. I do not understand the reason why the language specification changed, especially when the MQL4 development was stopped. Anyway, I wonder if it affects the MQL5, I had no time left to test it.

  • Explicit casting of structures stopped to compile in 1066. 
  • Implicit casting of structures stopped to compile in 1069.  
  • ArrayCopy of object pointers stopped to compile in 1069. It actually prevents me from using the array of pointers, and rollback to the older compiler is necessary 
Moreover, the Metaeditor stopped advancing the output pane view to the first error/warning line, but shows the first line instead (no errors shows up in this view, but rather the included files).

RE:ArrayCopy #19005

Try compiling your .mq4 codes with compiler delivered and opened with MT5 platform (even though it has the same build number, the results are different for some reason).

 
cbs2002:

Hello,

since the update to build 1069 metatrader 4 the editor accepts only mql5-syntax. What happens? I cannot compile my mql4-source any more! Please help me!

use  exmetaeditor exe by command prompt for compiling ....
 
Ex Ovo Omnia:

Changes in the 1069 compiler (Metaeditor v.1596) are really weird. I tried to fix the code, but it is affected too much. I do not understand the reason why the language specification changed, especially when the MQL4 development was stopped. Anyway, I wonder if it affects the MQL5, I had no time left to test it.

  • Explicit casting of structures stopped to compile in 1066. 
  • Implicit casting of structures stopped to compile in 1069.  
  • ArrayCopy of object pointers stopped to compile in 1069. It actually prevents me from using the array of pointers, and rollback to the older compiler is necessary 
Moreover, the Metaeditor stopped advancing the output pane view to the first error/warning line, but shows the first line instead (no errors shows up in this view, but rather the included files).

Service Desk said that is invalid now. The worst is MQL language lacks many features working with structures. You cant have pointers to structures and now you cant use structures in class templates too. This broken all my work because I use this kind of things. I dont understand what benefit have remove one feature needed for have some flexibility in code
 
Juan Fernandez:

Service Desk said that is invalid now. The worst is MQL language lacks many features working with structures. You cant have pointers to structures and now you cant use structures in class templates too. This broken all my work because I use this kind of things. I dont understand what benefit have remove one feature needed for have some flexibility in code
Give an example of what you mean?
Reason: