Bagaimanakah Saya Boleh Mengeksport Semua Simbol daripada DLL dalam Visual Studio Tanpa Menggunakan Fail Makro atau .def?

Patricia Arquette
Lepaskan: 2024-11-25 22:48:10
asal
838 orang telah melayarinya

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

Mengeksport Semua Simbol Secara Automatik dalam DLL Tanpa Makro atau Fail .def

Dalam Visual Studio 2005, anda boleh mengeksport semua simbol daripada DLL tanpa menambah __declspec(dllexport) atau mencipta fail .def secara manual. Ini dicapai melalui langkah berikut:

Menggunakan CMake (Disyorkan)

  • Pasang CMake versi 3.3.20150721-g9cd2f atau lebih tinggi, yang termasuk "Eksport Semua" ciri.
  • Tambah baris set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ke fail CMakeLists.txt anda.
  • Buat projek Visual Studio menggunakan CMake.
  • Kompilasi projek dan semua simbol akan dieksport secara automatik.

Nota: Apabila menggunakan kaedah ini, pastikan bahawa /GL (Pengoptimuman Seluruh Program) tidak didayakan.

Menghuraikan Fail .obj

  • Buat atur cara untuk menghuraikan fail .obj dan mengekstrak simbol yang dieksport .
  • Kumpulkan maklumat seperti konvensyen panggilan, medan simbol dan luaran/statik maklumat.
  • Janakan fail .def dengan simbol yang diekstrak.
  • Pautkan DLL menggunakan fail .def.

Walaupun kaedah ini memerlukan usaha tambahan, ia memberikan fleksibiliti dalam menghuraikan fail .obj.

Tambahan Petua

  • Gunakan makro __declspec(dllexport) atau __cdecl eksport untuk fungsi C untuk menghapuskan gangguan nama.
  • Gunakan perpustakaan statik untuk mengeksport simbol, kemudian huraikan dan ekstraknya untuk gunakan dalam fail .def.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeksport Semua Simbol daripada DLL dalam Visual Studio Tanpa Menggunakan Fail Makro atau .def?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan