0

QuickFix.dll从下载quickfixengine.org

当我声明一个属于 namespace 的对象时QuickFix::Fields,我无法获得其对应的基值(我的意思是 char 值OrdType,字符串值OrderID等)。因为没有与它们关联的属性。

有没有其他方法可以达到同样的效果?

代码是:

......
QuickField::Fields::OrdType ordType;
message.Get(OrdType);//message is a NewOrderSingle 
                     //type object defined prevviously in the code
                     //Now i wish to get the value contained in "ordType" but it has no
                     //properties to access its data member(s)
4

1 回答 1

1

这是你想看到的:

QuickField::Fields::OrdType ordType;
message.get(ordType);
char char_value = ordType.getValue();

建议:查看课程文档。字段基类是FIX::FieldBase,它派生为FIX::StringFieldFIX::BoolFieldFIX::IntField等。所有这些都有一个getValue()函数,该函数返回转换为正确数据类型的原始字段值。

另一种方法(不太合法)是使用Message::getField(int)which 将字段的值作为字符串返回。所以你可以使用std::string str_value = message.get(40);,但你会有一个字符串而不是一个 char (或 int 或 bool 或其他)。

于 2013-01-22T20:30:40.233 回答