如何在两个不同的文件中编译相交的枚举和结构?
How to compile intersecting enum and struct in two different files?
我有这两个简单的文件:
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 class 文件中与贸易相关的结构,该结构依赖于在 Order class 文件中定义的与订单相关的枚举。
错误是:
MQL4/MQL5 对于 Trade.mqh
'Trade' struct undefined (Order.mqh)
'TradeRequest' - declaration without type (Order.mqh)
MQL4 用于 Order.mqh
'ENUM_ORDER_STATE' - declaration without type (Trade.mqh)
'Trade' - struct undefined (Order.mqh)
';' - unexpected end of program (Order.mqh)
在 MQL5 中编译,但警告枚举已定义。
在 class Trade
上方声明 enum
,我认为没有任何理由将 enum
指定为 class 的 属性。
来自 MQL5 的支持团队确认,如果在订单 class.
中声明 ENUM_ORDER_STATE,则无法编译此代码
唯一的解决方法是在结构定义之上定义依赖元素(枚举)。
我有这两个简单的文件:
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 class 文件中与贸易相关的结构,该结构依赖于在 Order class 文件中定义的与订单相关的枚举。
错误是:
MQL4/MQL5 对于
Trade.mqh
'Trade' struct undefined (Order.mqh)
'TradeRequest' - declaration without type (Order.mqh)
MQL4 用于
Order.mqh
'ENUM_ORDER_STATE' - declaration without type (Trade.mqh)
'Trade' - struct undefined (Order.mqh)
';' - unexpected end of program (Order.mqh)
在 MQL5 中编译,但警告枚举已定义。
在 class Trade
上方声明 enum
,我认为没有任何理由将 enum
指定为 class 的 属性。
来自 MQL5 的支持团队确认,如果在订单 class.
中声明 ENUM_ORDER_STATE,则无法编译此代码唯一的解决方法是在结构定义之上定义依赖元素(枚举)。