2011-07-22 1 views
0

私は定期的に複数のクラスとユーティリティ関数を再利用しているので、それらの部分の静的ライブラリを作成しました。私の静的ライブラリ内の異なるヘッダファイルで繰り返し使用されるヘッダファイル

これまで、クラスおよび関数宣言を有するものヘッダファイルのほとんどは(<string><windows.h>等のような)同じ"global" header fileそれ自体#includes他のヘッダファイルを#include。

私の場合、クラスを持っているものを「積極的に」使っているときだけ、複数のヘッダーファイルをユーザーに強制的に挿入するのは面倒です。

私はグローバルヘッダーファイルを打ち破って、必要なすべてのヘッダーを自分のヘッダーに含めました。

この

は、何らかの形で働いていたが、私は Winsockに関するいくつかの問題が発生しました:あなたは WIN32_LEAN_AND_MEANを#defineし、それらの鉱山のヘッダ、または複数の再定義する前に、ユーザーwon't #include <windows.h>が発生することを確認する必要があります

を:/ 。

だから私はあなたにこれをどうやってやるのか尋ねたかったのですか?またはあなたが考えることができることは何を約束しますか?

答えて

1

私は、他のすべてのヘッダーファイルが含み、WIN32_LEAN_AND_MEANを定義する一般的なヘッダーファイルを定義するオプションしかないと思います。

それ以外の場合は、そのような定義を自分のファイルに含めるように指示できますが、エラーが発生しやすくなります。

<windows.h>を含めると、「ガードを含む」ため、複数回は含まれないと思います。

+0

しかし、私はすべてのヘッダーファイルを "出荷"する必要があります。 残っている唯一のオプションは、ヘッダーをマージすることです。 なるほど 何私もWINDOWS.H周りヘッダガードを入れていたことについて考えとWinsockファイル – Incubbus

+1

ほとんどのライブラリが実行可能ファイルとすべてのヘッダファイルを含むディレクトリに付属しているので、私はこのことを心配しません...とにかく、選んでいいですよ... :-) – sergio

関連する問題