Saya memiliki file biner - Windows static library (* .lib).
Apakah ada cara sederhana untuk mengetahui nama fungsi dan antarmuka mereka dari perpustakaan itu?
Sesuatu yang mirip dengan emfar
dan elfdump
utilitas (pada sistem Linux)?
windows
static-libraries
libraries
Nick Borodulin
sumber
sumber
Jawaban:
Dengan asumsi Anda berbicara tentang perpustakaan statis,
DUMPBIN /SYMBOLS
menunjukkan fungsi dan objek data di perpustakaan. Jika Anda berbicara tentang perpustakaan impor (yang.lib
digunakan untuk merujuk simbol yang diekspor dari DLL), maka Anda menginginkannyaDUMPBIN /EXPORTS
.Perhatikan bahwa untuk fungsi yang terhubung dengan antarmuka biner "C", ini masih tidak akan membuat Anda mengembalikan nilai, parameter, atau konvensi pemanggilan. Informasi itu tidak dikodekan
.lib
sama sekali; Anda harus tahu sebelumnya (melalui prototipe dalam file header, misalnya) untuk memanggilnya dengan benar.Untuk fungsi yang dihubungkan dengan antarmuka biner C ++, konvensi pemanggilan dan argumen dikodekan dalam nama fungsi yang diekspor (juga disebut "nama mangling").
DUMPBIN /SYMBOLS
akan menunjukkan Anda kedua nama fungsi "rusak" dan juga set parameter yang didekodekan.sumber
Buka konsol perintah visual (Visual Studio Command Prompt)
atau
atau cukup buka dengan 7-zip :) ini adalah arsip AR
sumber
Saya ingin alat seperti
ar t libfile.a
di unix.Setara dengan windows
lib.exe /list libfile.lib
.sumber
"dumpbin -exports" berfungsi untuk dll, tetapi kadang-kadang mungkin tidak berfungsi untuk lib. Untuk lib kita dapat menggunakan "dumpbin -linkermember" atau hanya "dumpbin -linkermember: 1".
sumber
LIB.EXE adalah pustakawan untuk VS
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(seperti libtool di Unix)
sumber
DUMPBIN / EKSPOR Akan mendapatkan sebagian besar informasi itu dan memukul MSDN akan mendapatkan sisanya.
Dapatkan salah satu paket Visual Studio; C ++
sumber
1) Buka Prompt Perintah Pengembang untuk VS 2017 (atau versi apa pun yang Anda miliki di komputer Anda) (Itu harus berada di bawah: Start menu -> Semua program -> Visual Studio 2017 (atau versi apa pun yang Anda miliki di mesin Anda) -> Alat Visual Studio -> Prompt Perintah Pengembang untuk VS 2017.
2) Masukkan perintah berikut:
dumpbin /EXPORTS my_lib_name.lib
sumber
Seperti itu dapat dilihat di jawaban lain Anda harus membuka Command Prompt Pengembang yang ditawarkan dalam versi Visual Studio Anda agar ada
dumpbin.exe
di jalur eksekusi Anda. Jika tidak, Anda dapat mengatur variabel lingkungan yang diperlukan dengan tangan.dumpbin /EXPORTS yourlibrary.lib
biasanya hanya akan menampilkan daftar simbol. Dalam banyak kasus, ini tidak akan menunjukkan fungsi ekspor perpustakaan.dumpbin /SYMBOLS /EXPORTS yourlibrary.lib
akan menunjukkan simbol itu, tetapi juga jumlah symbos lainnya yang sangat besar. Jadi, Anda harus menyaringnya, mungkin dengan pipa kefindstr
(jika Anda ingin alat MS-Windows), ataugrep
.Mencari
Static
kata kunci menggunakan salah satu alat ini tampaknya menjadi petunjuk yang bagus.sumber