-2

シミュレーターを作る必要があります。機能は次のとおりです。

入力: 変更不可能な C コード

機能: これらのコードをコンパイルして実行し、出力を生成します。各 C コードは変数の場合があります。これらすべての変数に対して、入力関数 (時間ベース) が与えられます。したがって、入力 c コード ファイルに単純な加算器 int add(a,b)/* がある場合、a と b は指定された fn で時間とともに変化します。したがって、t=0 で a=1,b=2 t=4 で b は 6 などに変化する可能性があります*/ 差分時間にコードを実行し、出力を生成する必要があります。それらのo / psも確認してください。これらすべての目的のために、GUIも必要です。

バックエンドと GUI ツールの両方について提案が必要です。

PS: 私の調査によると、GUI 用の GTK を使用した C バックエンドは実行可能なソリューションですが、GTK は長すぎて退屈です。AC バックエンドではうまく機能しない可能性があるため、Qt/C++ について混乱しています。C++ バックエンドは、これらの入力コードをインポートして実行するのが難しいでしょう (extern は常に機能しません)。また、GUI 用の C# と dll ファイルへのリンクも調べましたが、多くのブログであまり実現可能ではないと言及されています。助言がありますか?もうありがとう。

PPS オープン ソースおよび非ライセンス ツールのみを提案してください。

4

1 に答える 1

0

C++ は、あらゆる C ライブラリまたは "コード" と簡単にやり取りできるので、気にする必要はありません。

Qtを使用することをお勧めします。無料の素晴らしい IDE である Qt Creator が付属しています。多くの場合、GTK を超える高レベルの機能を提供します。悲しいかな、GTK ライブラリのエコシステムは非常に「ハッキング可能」です。基礎となるオブジェクト モデルは、あらゆる種類の創造的な使用と悪用を可能にしますが、私見では非常に浅い学習曲線を持っています。Qt よりも GTK を「完全に」理解するには、はるかに時間がかかります。 .

これは単純に、GTK の基礎となる低レベル ライブラリが、C++ 言語によって引き継がれたり、Qt のビューから隠されたりする多くの機能を提供するためです。GTK の基盤はより柔軟であることがわかりましたが、それはすべて問題を解決するための解決策のようです。Qt/C++ のはるかに単純で柔軟性の低いオブジェクト モデルも同様に機能し、それがはるかに少ないため習得が容易です。

時間を投資するという観点からも考えてください。C++ に習熟することを学ぶことは、単に同じ言語を使用する他のプロジェクトに移植できます。glib に習熟することを学ぶことは、特に glib を使用する C プロジェクトでのみ役立ちます。C++ プロジェクトよりもはるかに少ないと思います。

時には良いことをやりすぎると悪いこともあるが、私にはそれが GTK の場合に当てはまるように思える。これは、低レベルの機能を備えた底辺のライブラリ コレクションですが、高レベルの抽象化は軽視されているようです。個々のライブラリはすべて、わずかに異なる指針に従って設計されており、基本的にゆるく結合されたコレクションであることを気にしないでください。これは、コンポーネントを分離する上では理論的には良いことですが、GTK を構成するさまざまなライブラリに共通の設計要素がほとんどないため、学習がはるかに難しくなります。

対照的に、Qt はほとんど単一の統一された大きなライブラリであり、使用しないように選択できるモジュールに分割されています。

PS。ほとんどの人は、何かを学ぶのが難しいという意味で、「急な学習曲線」を誤って使用しています。学習曲線は、「知識」対時間を示しています。もしそれが急であるなら、それはあなたが速く学んでいることを意味します。浅いものは、学習が遅いことを意味します。

于 2012-06-15T14:07:48.230 に答える