我有这两个简单的文件:
Trade.mqh
class Trade;
class Trade {
public:
#include "Order.mqh"
struct TradeRequest {
ENUM_ORDER_STATE type;
};
};
Order.mqh
class Order;
class Trade;
#include "Trade.mqh"
class Order : public Trade {
public:
enum ENUM_ORDER_STATE {
ORDER_FOO,
ORDER_BAR
};
TradeRequest order;
};
但是编译失败了。
如何在不保留相同文件且不将结构移动到一个文件的情况下修复编译问题?
我想保持结构如何(两个单独的文件),Trade类文件中与交易相关的结构,它依赖于在Order类文件中定义的顺序相关枚举。
错误是:
Trade.mqh
'贸易' struct undefined(Order.mqh)
' TradeRequest的' - 没有类型的声明(Order.mqh)
Order.mqh
' ENUM_ORDER_STATE' - 没有类型的声明(Trade.mqh)
'贸易' - struct undefined(Order.mqh)
&#39 ;;' - 程序的意外结束(Order.mqh)
在MQL5编译中,但是已经定义了枚举的警告。
答案 0 :(得分:1)
在var tags = (string[])shellFile.Properties.System.Keywords.ValueAsObject;
tags = tags ?? new string[0];
if (tags.Length != 0)
{
foreach (string str in tags)
{
Console.WriteLine("keyword:" + str);
}
}
之上声明enum
,我认为没有理由将class Trade
指定为该类的属性。
答案 1 :(得分:0)
来自MQL5的支持团队确认,如果在Order类中声明了ENUM_ORDER_STATE,则无法编译此代码。
唯一的解决方法是在结构定义之上定义依赖元素(枚举)。