Saya telah mendengar bahwa "BPL adalah jenis DLL khusus", tetapi saya tidak berharap bahwa kalimat ini memiliki arti yang sangat besar. Baru -baru ini saya melihat seseorang menulis pernyataan ekspor di sebuah unit milik DPK tertentu, dan saya sangat terkejut. Tetapi melihat bantuan Delphi, semua yang terkait dengan ekspor adalah perpustakaan. Saya membaca "Analisis Kode Sumber Delphi" hari ini dan kemudian saya mempelajari arti dari kalimat di atas. Oleh karena itu, ada kesimpulan berikut:
Untuk proyek DLL, ekspor dapat ditulis dalam file atau unit proyek, tidak ada perbedaan.
BPL adalah sejenis DLL.
Ekspor di atas normal.
Bahkan, menurut pernyataan dalam "Analisis Kode Sumber Delphi", BPL hanya menambahkan beberapa fitur berdasarkan DLL, seperti memeriksa unit duplikat. Sistem operasi menganggap BPL dan DLL sebagai jenis file yang sama. Dan buku ini memberikan hasil tdump untuk BPL paling sederhana:
paket nullpackage;
Memerlukan
RTL;
akhir.
E:/ls> tdump -m -ea: v nullpackage.bpl
Ekspor dari nullpackage.bpl
7 nama yang diekspor, 7 alamat ekspor.
Diurutkan berdasarkan RVA:
RVA ord
-------------------------------------------------- -------------------------------------------------- ----------------------------
0000124c 1 0006 @getPackageInfotable
0000124c 2 0003@nullpackage @@ getPackageInfotable $ qqrv
00001254 3 0002@nullpackage @@ packageLoad $ qqrv
00001254 7 0005 Inisialisasi
00001260 4 0001@nullpackage @@ packageunload $ qqrv
00001260 6 0004 Finalisasi
0000126c 5 0000 @nullpackage @inisialisasi $ qqrv
Pernahkah Anda melihat beberapa fungsi menunjuk ke alamat yang sama? Ini mungkin arti ekspor.
Off Topic: Google tidak mudah digunakan hari ini, jadi saya harus menggunakan Baidu, tetapi butuh waktu lama untuk tidak menghasilkan hasil. Saya mendapatkan Google di sore hari dan mencari dan menemukan apa yang saya butuhkan segera. Sepertinya Baidu masih tidak bisa melakukannya.