ベクトルや文字列などの std:: オブジェクトを含むクラスを DLL からエクスポートしようとする場合、 dll インターフェイスの必要性に関する警告が表示される場合があります。この警告は、クラス内の複合型のメンバーが DLL エクスポート用に明示的にマークされていないことをコンパイラが検出したときにトリガーされます。
DLL_EXPORT を使用してメンバー型を前方宣言すると、この問題を部分的に解決できます。ただし、メンバー関数を適切にエクスポートするには、コンパイル単位内の対応するクラスも DLL_EXPORT としてマークする必要があります。
この要件は、クラスのどのメソッドがクライアントによって使用されるかをコンパイラが判断できないという事実から生じています。 DLL_EXPORTed クラスの。したがって、アクセス可能なすべてのメソッドをエクスポートする必要があります。この状況では、警告を無視して無効にすることはお勧めできません。
DLL エクスポート不可能なメンバーの警告に対処するには、次のアプローチが検討できます。
この例では、テンプレートの特殊化 std::allocator
以上がstd:: オブジェクトを含むクラスを DLL からエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。