程序库: TradeTransactions - 页 9

不确定这是我的错误,还是因为新的编译器指令导致的,我在编译该库时遇到了以下错误。

我确实从RU版块下载了各个单独的文件。
cannot convert parameter 'uint[]' to 'ONTRADETRANSACTION&[]' ResourceData.mqh 23 21 
   int RESOURCEDATA<ONTRADETRANSACTION>::Get(ONTRADETRANSACTION&[]) const ResourceData.mqh 26 7 
call resolves to 'int RESOURCEDATA<ONTRADETRANSACTION>::Get(ONTRADETRANSACTION&[]) const' instead of 'int RESOURCE::Get(uint&[]) const' due to new rules of method hiding ResourceData.mqh 23 17 
   see declaration of function 'RESOURCEDATA<ONTRADETRANSACTION>::Get' ResourceData.mqh 26 7 
   see declaration of function 'RESOURCE::Get' Resource.mqh 20 7 
cannot convert parameter 'uint[]' to 'ONTRADETRANSACTION&[]' ResourceData.mqh 42 18 
   int RESOURCEDATA<ONTRADETRANSACTION>::Get(ONTRADETRANSACTION&[]) const ResourceData.mqh 26 7 
call resolves to 'int RESOURCEDATA<ONTRADETRANSACTION>::Get(ONTRADETRANSACTION&[]) const' instead of 'int RESOURCE::Get(uint&[]) const' due to new rules of method hiding ResourceData.mqh 42 14 
   see declaration of function 'RESOURCEDATA<ONTRADETRANSACTION>::Get' ResourceData.mqh 26 7 
   see declaration of function 'RESOURCE::Get' Resource.mqh 20 7 
wrong parameters count, 1 passed, but 3 requires TradeTransactions.mqh 72 34 
   ulong TRADETRANSACTIONS::Get(MqlTradeTransaction&,MqlTradeRequest&,MqlTradeResult&) TradeTransactions.mqh 48 9 
call resolves to 'ulong TRADETRANSACTIONS::Get(MqlTradeTransaction&,MqlTradeRequest&,MqlTradeResult&)' instead of 'int RESOURCEDATA<ONTRADETRANSACTION>::Get(ONTRADETRANSACTION&[]) const' due to new rules of hiding method TradeTransactions.mqh 72 34 
   see declaration of function 'TRADETRANSACTIONS::Get' TradeTransactions.mqh 48 9 
   see declaration of function 'RESOURCEDATA<ONTRADETRANSACTION>::Get' ResourceData.mqh 26 7 


无论如何,为了解决编译器问题,请修改以下内容:


在 ResourceData.mqh 中:

将以下内容替换为:

return  ( this  . Get(Data) * sizeof  ( uint  ) / sizeof  (T)); 

替换为:

return  (RESOURCE::Get(Data) * sizeof  ( uint  ) / sizeof  (T)); 

并将以下内容替换为:

if  ( this  .Get(Data) && (Pos < ( uint  ) this  .Get(Array))) 

替换为:

if  (RESOURCE::Get(Data) && (Pos < ( uint  ) this  .Get(Array))) 


在 TradeTransaction.mqh 中:

替换:

const  uint  NewTotal = this  .Get(OnTradeTrans); 

替换为:

c onst  uint  NewTotal = RESOURCEDATA<ONTRADETRANSACTION>::Get(OnTradeTrans); 
Enrique Dangeroux #:

我确实从RU版块下载了这些单独的文件。

页面上写着代码更新于2026年9月21日,但我并没有进行过更新。

看来是MQ在整个代码库中自动进行了更新。他们更改了编码:UTF-8 →UTF-8 BOM。


该库很久没有更新了。编译器的规则确实发生了变化。