ホームページ  >  記事  >  バックエンド開発  >  マクロや .def ファイルを使用せずに、Visual Studio の DLL からすべてのシンボルをエクスポートするにはどうすればよいですか?

マクロや .def ファイルを使用せずに、Visual Studio の DLL からすべてのシンボルをエクスポートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-25 22:48:10842ブラウズ

How Can I Export All Symbols from a DLL in Visual Studio Without Using Macros or .def Files?

マクロや .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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。