2016-03-21 6 views
1

まず、私の会社はITではなく電力網に入っているので、ソフトウェアはちょっとしたことです。私の会社はexes間でデータを共有してこの権利を行っていますか?

私は電源システムシミュレーションソフトウェア、C++の非常に古いコードベース、15歳のMFCで動作します。私たちがやることは、大量のデータと100,000個の浮動小数点値を取り、テキストファイルに書式を設定して書き込むことです(コードのほとんどは実際にはC FILE構造を使ってこれを行います)。次に、それは電気アルゴリズムを計算する別のエンジンexeで読み込まれます(電気アルゴリズムは主にdiffn方程式系の数値解です)。そして、大量のデータを別のテキストファイルに書き戻し、UIを読み込んで更新します。

私の質問は、これを行う方法ですか?そこにはテキストファイルへの書き込みをスキップしてexesに直接データを渡す方法がありますか?

exeは、CreateProcess()MFC関数を使用して呼び出されます。

EDIT :: 申し訳ありませんが、サイトは私にコメントさせません。

@Vlad Feinsteinまあ、はい、それははしごのようです。負荷フローと呼ばれるものは、ラインを通る電力の流れを解決し、システムの安定性を見つけるために使用されます。それは巨大で、UIは百万行+コード行で、エンジンはおそらくもう一万万回です。

MFCは既にDynamic Data Exchangeを使用してIPCを実装していませんか?他のプロセスのPreTranslateMessage()funcに文字列を渡すことができます。それの拡大版?

+0

非常にうまい。私は、ライブラリ内のデータを処理するロジックを保つことを好むでしょう。 (exeとほとんど違いはありません) –

+2

動作すれば、なぜそれを修正しますか? –

+0

テキストファイルへの書き込みはどのように直接ですか?あなたは、データが実際にディスクに書き込まれていると誤解されていますか? –

答えて

2

「行うべきである」というようなことはありません.IPCを行う方法は複数ありますが、あなたの方法は最速ではないかもしれませんが、実行可能な解決策です。この特定のケースでパフォーマンスが気になることがなければ、変更するのは気にしないでください。フレーズが「壊れていない場合は修正しないでください」という語句が適用されます。が適用されます。

おそらく、の新しい IPCをアプリケーションに追加したくないかもしれません。

関連する問題