2013-03-06 3 views
6

C言語のC言語(第2章または第2章で完成したばかりです)を学んでいます。私は最後までスキミングし、どのように作成するかについては何も言われていませんGUI、そして私が見たものから、フレームワークを使わなければならないようですが、私はそれを嫌いです。フレームワークなしでGUIを作成するには?これらのフレームワークはどのくらい正確に機能し、どの言語が書かれていますか?私は大量のアプリケーションを作っているわけではありません。たとえそれが1週間かかるとしても、何もしないボタンをクリックするだけのような、驚くほど基本的なことをするためのGUIアプリケーション(C言語)を書くことは実現可能でしょうか?CでフレームワークのないGUIを作る

これは、クロスプラットフォームであることに注意してください。私は、& BSDユーザーです。

答えて

2

あなたは、OpenGLやXlibに基づいて、独自のフレームワークを構築することができます。または、MotifCGUIのような良いグラフィックライブラリを使用してください。 GTKのようなものを使ってください。

+0

なぜあなたはcguiとモチーフが好きで、gtkであなたの悩みは何ですか? gtkで作られたFirefoxでないのですか? – David

+0

@David、GTKは外見だけでなく内部構造(glibベースの構造は本当の悪夢ですが、ほぼQtに似ています)というひどいライブラリです! –

3

うん、何も行きません。

Cはメモリを管理する以外に何もできません。また、ソフトウェアの割り込み(ポインタのハッキングを行う場合)を行うことはできません。

あなたは何かをするためのライブラリを必要としています。

GUIは非常に複雑であり、あなたはそれを「シンプル」何もすることができません。私が毎日直面している問題です。

Cでウィンドウを表示するには、X11、GTK、Windows API、ビデオハッキング、その他の楽しいものが必要です。

ああ、ビデオハッキングは無駄です。あなたが許可なしでビデオメモリに触れようとすると、OSは例外をスローします。

ああ、あなたが話す "シンプルなボタン"は、Windows APIでは、実際には非常に単純ではないウィンドウ自体です。

+0

"許可なしでビデオメモリに触れようとすると、OSが例外をスローします。"むしろユーザランドプロセスが仮想メモリにアクセスできるので、アドレスを物理アドレスとして扱うことはできません。 –

+0

GtKはどうやって使うのですか?私はwinapiを使用する方法を知っています(C#.. .netフレームワークなど)が、どのように私はGTKを使用するのですか? – David

+0

DebianベースのシステムでGTKを設定するためのチュートリアルは非常に簡単です。コンパイルには "gcc helloworld.c -o helloworld' pkg-config --cflags gtk + -2.0' "かその行に沿ったものが必要です。 apt-getでほんの数分でgtkを設定できます。しかし、他の場所でそれを使用して幸運。 Windowsのセットアップには数日かかりました。 UbuntuやFedora以外の多くのUNIXベースのシステムを実際に使ったことはありませんでした。 – Dmitry

2

あなたはWINAPI

There is a great tutorial here.

を使用して、基本的な枠組みを作ることができますCとWINAPIのような原始的なフレームワークを使用しての問題は、レイアウトや状態をmangingすることは非常に困難になることです。

通常のオペレーティングシステムをターゲットにしている場合、Cの要件のみが不合理になります。私はあなたがC++Qtで行くとC++コンパイラであなたのCコードをコンパイルお勧めします。

+0

申し訳ありませんが、WINAPIのようなものは無駄です。これはクロスプラットフォームにする必要があります。私はLinuxユーザーです。 – David

+0

@Davidはおそらくこれを言っていたはずです:-) – Mikhail

+0

私のOPを編集しました。 :) – David

3

ない取るための最善の道。 GTK+のようなクロスプラットフォームのライブラリをお勧めします。

+0

さて、どうすればGtKを使用できますか?私はwinapiを使用する方法を知っています(C#.. .netフレームワークなど)が、どのように私はGTKを使用するのですか? - – David

+1

こちらのチュートリアルをよく確認してください:http://www.gtk.org/documentation.php。 – meyumer

関連する問題