2012-01-20 4 views
1

http://suckless.org/とそのUnixツールのセットについて聞いたことがあります。基本的には、それぞれが1つのことを行うことを目標とするプログラムのセットですが、可能な限りシンプルでリソースを軽くしながら、うまくやっています。小さなWindowsプログラムの作成にどのライブラリを使用できますか?

私はCを使用してWindows上でのプログラミングのこのスタイルを再現する方法を見つけるためにしようとしてきた++が、私が知っているすべてのライブラリは、その機能に関しては巨大であるバイナリを生成します。例えば、Qtの中でも最も単純なものでさえ、一般的に数メガバイトです。私はパッケージングの依存関係を配布可能ファイルと一緒にしているわけではありませんが、私はそれをそのレベルまでしたくありません。

バイナリサイズは私の主な目標の一つではなく、シンプルであり、これらのような大きなライブラリは、工事によって、単純ではありません。バイナリサイズが主な関心事だった場合は、kkreigerやマルウェアのようにランタイム圧縮を使用することができます。

ISO標準のC++ライブラリのみを使用することも可能ですが、小さな単一目的のアプリケーション用にソケットやネットワークシステムを再構築することは、誰もが悩んでいるとは限りません。私は、Windowsの開発者は皆、そのおばあちゃんが容易にアクセス可能持つに数えることができるが、そのようなものが存在する場合は、今、私は知らないいくつかの一般的な-purpouseライブラリがあったと思ったいくつかの理由

。 Unixの哲学に従うが、Windowsターゲットのコードを書くのに何が使えますか?

+4

Erm、Win32 API?あなたはそれよりもはるかに低いレベルを得ることはできません... –

+0

何を!どうやってWindows APIの存在を忘れてしまったのですか? MFCもあります。それを答えに移すと私はそれを受け入れます。 – enthdegree

答えて

2

Win32 APIを直接ターゲットにする必要があります。あなたはそれよりもはるかに低いレベルを得ることはできません。 Windowsの世界では、すべてが直接的または間接的に、いわゆる「標準C++ライブラリ」を含むSDK関数をラップしています。

また、比較的薄いC++ラッパーであるMFCやWTLをWin32 APIに使用することもできます。クラスライブラリのオーバーヘッドのため、このようなプログラムはSDKのみを使用して作成されたプログラムよりもわずかに小さくなりますが、現実のオーバーヘッドはまったく重要ではありません。

あなたの質問で表現された欲望は、正確にはです。なぜ私は今でもWin32 APIを学んでいますが、それは間違いなく私が行っていることです。さらに、あなたのプログラムは見た目とネイティブ感があります。これは、ほとんどの「クロスプラットフォームGUIツールキット」よりも優れています。これの利点を過小評価することはできません。

しかし、あなただけのVisual Studioを開き、シンプルで小さなSDK「Hello World」のアプリをコンパイルする場合、それはまだとても大きなことでしょう。キロバイト、確かに、それはまだ想像できる最も単純なアプリについてたくさんのように思えます。実際にさらに細かくカットする必要がある場合は、CランタイムライブラリにリンクしないようにVisual Studioに指示して、独自のmainエントリポイントを定義してみてください。これは、あなた自身のスタートアップ初期化コードをすべて実装しなければならないことを意味しますが、これは簡単なアプリのサイズを実質的に減らすことができます。

Matt Pietrek had this same ideaこのルートに進むことに決めた場合、元のコードを大幅に「近代化」するのに時間がかかることがあります。

+0

答えの2番目の段落で「少し小さい」の代わりに「わずかに大きい」と言っていたと思います。 – selbie

1

FLTKは、一般的なクロスプラットフォームの最小GUIツールキットです。

それともあなただけの最小限の埋め込まれたWebサーバを起動し、ブラウザでHTML内のすべての「GUI」を行うことですあまりにも多くの詳細な相互作用を必要としない場合は一般的な代替。

関連する問題