新版本 MqlTradeRequest和MqlTradeResult的声明和初始化报错,如何解决????

 

     旧版本声明和初始化:                  

MqlTradeRequest request={0};

MqlTradeResult  result={0};

现在最新版的MT5报错:cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS' 

如何处理??

关键是官方没给个说法,官方的 声明和初始化是老版本的,这个写法现在报错


 
icy888:

     旧版本声明和初始化:                  

MqlTradeRequest request={0};

MqlTradeResult  result={0};

现在最新版的MT5报错:cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS' 

如何处理??

关键是官方没给个说法,官方的 声明和初始化是老版本的,这个写法现在报错


按照MQL5帮助文档的示例初始化 MqlTradeRequest request={0}; 编译却说 cannot convert 0 to enum'ENUM_TRADE_REQUEST_ACTIONS' - EA和自动交易 - MQL5 算法交易论坛
按照MQL5帮助文档的示例初始化 MqlTradeRequest request={0}; 编译却说 cannot convert 0 to enum'ENUM_TRADE_REQUEST_ACTIONS'
按照MQL5帮助文档的示例初始化 MqlTradeRequest request={0}; 编译却说 cannot convert 0 to enum'ENUM_TRADE_REQUEST_ACTIONS'
  • 2021.05.31
  • www.mql5.com
按照MQL5帮助文档的示例初始化 MqlTradeRequest request={0}; 编译却说 cannot convert 0 to enum'ENUM_TRADE_REQUEST_ACTIONS' 有大佬知道是什么问题吗...
 

升级后新编译器对枚举类型的赋值更加严格了,以下2种写法都能解决问题:

   MqlTradeRequest request={1};   
   //或者   
   MqlTradeRequest request= {};
 
Ziheng Zhuang:

升级后新编译器对枚举类型的赋值更加严格了,以下2种写法都能解决问题:

那result呢
 
myxdsl:
那result呢

看下那个MqlTradeRequest结构体,它是没有枚举类型的元素的,因此用MqlTraderResult result = {0}是可以的。

如果搞不懂的话,就统一这么写:

            MqlTradeRequest request = {};
            MqlTradeResult  result  = {};