3

私は眠れぬ夜を過ごし、quickfix_net.dll と quickfix_net_messages.dll の 64 ビット バージョンを持つQUICKFIXを構築しようとしました。

私の C# フレームワークは 64 ビットで、通常提供されている QUICKFIX dll は 32 ビットなので、他に選択肢はありません (アプリを 32 ビットに戻すことはオプションではありません)。

VS_10 ソリューションがすぐにビルドされることを期待していましたが (かわいそうな素朴なバニー...)、多くの #include "xxxxxx.h" ステートメントで、多数の未検出のライブラリ エラー (ソース ファイル "xxxxxx.h" を開けません) があります。私が試した 2 つのプロジェクト ソースでこの動作が発生しました。私はどちらかというと .net 派で、自分でこれを修正できなかったので困惑しています。

元のプロジェクト ソースはここからダウンロードでき、私が最も興味を持っている 64 ビット フォークはここ
にあります。quickfix_vs10.sln を開いてクリーン コンパイルを行っていただける方がいらっしゃいましたら、少なくとも 2 時間はお時間をいただけると思います。仕事に戻る前に会社の地下室で寝ます。

編集 :

詳細なエラー:

  • 認識できない #include "quickfix/foo" がたくさんあります > 全体のソリューションからすべての "quickfix/" プレフィックスを削除する必要があります
  • 'FIX' : クラスまたは名前空間の名前ではありません (特に FieldMap.h 内)
  • 型指定子がありません - int と見なされます。注: C++ は default-int -'QuickFix::FieldNotFound __gc &' をサポートしていません: 値または参照によって管理対象オブジェクトをスローまたはキャッチできません

私は何百ものそれぞれを持っています... :(

EDIT : EFFICIENT ANSWER

REAL .Net FIX エンジンが必要な場合は、VERSAFIXまたはQUICKFIX/Nを選択することをお勧めします。 どちらもネイティブ .Net およびオープン ソースであるため、x64 dll (または必要に応じて x86) としてコンパイルできます。

  • QUICKFIX/N が登場したばかりで、非常に有望です。投稿から数か月後に出てきたのは残念です:(
  • VERSAFIXの時点で、私の会社はそれを6か月間使用しており、これまでのところかなり満足しています. (プロジェクトの開始者であるラス・カリーは、技術的に堅実で反応が良いです。)
4

3 に答える 3

2

.NET 専用に構築された FIX ライブラリであるQuickFIX/nを確認してください(アンマネージ C++ ラッパーなし)。QuickFIX/n は、QuickFIX の優れた規則をすべて保持しています。

于 2011-12-02T02:09:00.703 に答える
1

数日前にも64ビットバージョンのquickfixが必要でしたが、これが私がそれを行った方法であり、64ビットに変換する際にエラーや問題はまったくありませんでした。アーカイブの新しいインスタンスを unrar し、VS で開きます。次に、ソリューション全体のプロパティに移動し、構成プロパティを選択します。次に、[構成マネージャー] ボタンを押して、[アクティブなソリューション パトフォーム] のドロップダウンから [新規] を選択します。最初のドロップダウンから x64 を選択し、2 番目の [設定のコピー元:] から [混合プラットフォーム] を選択します。これを行った後、ソリューションを再構築するだけで完了です。

これが皆さんのお役に立てば幸いです。良い1日を。

于 2012-01-31T07:30:59.463 に答える
0

ヘッダー (.h) エラーは、インクルード フォルダーが見つからないことが原因です。プロジェクトがヘッダー ファイルを探す場所のリストにそのフォルダーを追加すると、正常にビルドされるはずです。私もこの問題を抱えていましたが、C ++の開発者はそれが何であるかを即座に知っていました.C ++に慣れていなければ時間がかかったと思います.

于 2011-09-21T09:08:24.587 に答える