我从QuickFix.dll
下载了quickfixengine.org
当我声明一个属于名称空间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)
最佳答案
这是您想看到的:
QuickField::Fields::OrdType ordType;
message.get(ordType);
char char_value = ordType.getValue();
建议:检出the class documentation。字段基类是
FIX::FieldBase
,它派生为FIX::StringField
,FIX::BoolField
,FIX::IntField
等。所有这些均具有getValue()
函数,该函数返回转换为正确数据类型的原始字段值。进行此操作的另一种方法(更不合法)是使用
Message::getField(int)
,它以字符串形式返回字段的值。因此,您可以使用std::string str_value = message.get(40);
,但是将使用字符串而不是char(或int或bool或其他任何字符)。