0

からダウンロードQuickFix.dllしましたquickfixengine.org

名前空間に属するオブジェクトを宣言するとQuickFix::Fields、対応する基本値(つまり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::IntFieldgetValue()

これを行う別の方法(正当性ははるかに低い)はMessage::getField(int)、フィールドの値を文字列として返すを使用することです。したがって、を使用することもできますstd::string str_value = message.get(40);が、char(またはintまたはboolなど)の代わりに文字列を使用することになります。

于 2013-01-22T20:30:40.233 に答える