マクロや .def ファイルを使用せずに、DLL 内のすべてのシンボルを自動的にエクスポートします
Visual Studio 2005 では、DLL からすべてのシンボルをエクスポートできます手動で __declspec(dllexport) を追加したり、.def ファイルを作成したりする必要はありません。これは、次の手順で実行できます。
CMake の使用 (推奨)
- CMake バージョン 3.3.20150721-g9cd2f 以降をインストールします。これには、「エクスポート」ファイルが含まれます。 「すべて」機能。
- 行を追加set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) を CMakeLists.txt ファイルに設定します。
- CMake を使用して Visual Studio プロジェクトを作成します。
- プロジェクトをコンパイルすると、すべてのシンボルが自動的にエクスポートされます。
注意: 使用する場合
.obj ファイルの解析
- .obj ファイルを解析するプログラムを作成し、エクスポートされたシンボルを抽出します。
- 呼び出し規約、シンボル フィールド、 extern/static 情報。
- 抽出されたシンボルを含む .def ファイルを生成します。
- .def ファイルを使用して DLL をリンクします。
この方法では追加の追加が必要ですこれにより、.obj ファイルの解析に柔軟性がもたらされます。
追加ヒント
- 名前のマングリングを排除するには、C 関数の __declspec(dllexport) または __cdecl エクスポート マクロを使用します。
- 静的ライブラリを使用してシンボルをエクスポートし、シンボルを解析して抽出します。 .def ファイルで使用します。
以上がマクロや .def ファイルを使用せずに、Visual Studio の DLL からすべてのシンボルをエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。