2

私が保守していない安定したライブラリ コードを参照したい。実際には、MFC コード スニペットです。

しかし、コード スニペットを含めたいときはいつでも、#includeファイル全体を含める必要があります。その結果、他のものを含める必要があり、MFC 全体を含める必要があります。結果は受け入れられません。

現在、コード スニペットをプロジェクトにコピー アンド ペーストしていますが、恥ずべきことです。C++ プリプロセッサでファイルの一部を参照することはできますか?

コードが特定の MFC バージョンとハードリンクされていても、プロジェクトでそれらを複製するよりはましです。このようなハードリンクを使用すると、MFC からのものであることがわかり、チェックする時間を節約できます。

スーパーユースはあり#includeますか?


次のようなものを書くことができますか

#include  "foo.h" line [12, 55)

これは、foo.h の 22 行目から 54 行目を含めることを意味します。

4

2 に答える 2

6

一部のユーザーは、ヘッダーに #ifdef-sections を記述して、インクルード ファイルが特定の部分のみを取得できるようにしています。あなたの MFC ファイルにそれらが含まれているかどうかはわかりませんが、それを調べて既存のものを使用するか、独自のものを作成することができます。

ヘッダーは通常、次のようになります

#ifdef USE_FANCYPANTS
bool hasFancyPants();
#endif

#ifdef USE_COOLSTUFF
void doCoolStuff();
#endif

インクルード ファイルは、インクルードする前に #define を使用します。

#define USE_FANCYPANTS
#include "header.hpp"

次に、 hasFancyPants() のみを取得し、 doCoolStuff() を取得しません

于 2013-01-22T07:32:47.930 に答える
0
  • 条件付きコンパイルを使用して、不要なものを含めたり除外したりできます。ソースコードを少し変更し、プロジェクトの設定を修正する必要があります。
  • キーワードを使用できますtypedef。これにより、MFCと非MFCでタイプを異なる方法で定義したり、プロジェクト設定やレガシーコードに固有のタイプを定義したりできます。
  • すべてのものをDLLまたは.LIB(宣言だけでなくコードを含む)に入れ、リンカープラグマをヘッダーファイル自体に入れることができます。
于 2013-01-22T08:22:16.157 に答える