1

複数の dll に複数のクラスがあり、各 dll には他のクラスが含まれている場合があります。

__declspecdll のすべてのヘッダーのパラメーターを指定するために、次のマクロを使用します。

#ifdef DLL_UTIL_A
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif

dllA に dllB が含まれているとします。問題は、dllB のヘッダー ファイルを dllA にインクルードすると、dllB のヘッダー ファイルDLLEXPORTからクラスをインポートするようにマクロが再定義されることです。プリプロセッサが解析を続行するために dllA に戻るDLLEXPORTと、不要な値が更新されて更新されます。

dll ごとに異なる定義を使用する必要がありますか (例: replace DLLEXPORTby )、またはdllA に戻るときに の古い値DLLEXPORT_DLL_Aを取得するクリーンな方法はありますか?DLLEXPORT

4

1 に答える 1

2

両方の DLL の DLLEXPORT に異なるマクロ名を使用する必要があります。

于 2012-06-28T14:16:27.293 に答える