获取QuickFix :: Field :: OrdType的值?

时间:2013-01-22 13:28:56

标签: quickfix

我从quickfixengine.org下载了QuickFix.dll

当我声明一个属于命名空间QuickFix :: Fields的对象时,我无法获得其相应的基值(我指的是OrdType的char值,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)

1 个答案:

答案 0 :(得分:1)

这是你想看到的:

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

建议:查看the class documentation。字段基类为FIX::FieldBase,派生为FIX::StringFieldFIX::BoolFieldFIX::IntField等。所有这些都有getValue()函数返回原始字段值转换为正确的数据类型。

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