Untuk objek enkapsulasi DLL tertentu, silakan merujuk ke "Encapsulation DLL Encapsulation dan Call Object Technology di Delphi" dan kode sumber untuk buku ini.
Saya mengalami beberapa masalah aneh dalam proses menyusun DLL menggunakan Delphi.
1. Proyek DLL yang dihasilkan oleh Delphi menulis: Sharemem harus menjadi unit pertama dalam klausa penggunaan perpustakaan Anda dan proyek Anda. Di sini disebutkan di sini bahwa kedua proyek dan proyek DLL menggunakan DLL perlu merujuk unit sharemem.
Yang terbaik adalah menambahkan unit sharemem ke proyek, karena dalam penggunaan aktual, ditemukan bahwa kadang -kadang objek dilewatkan antara proyek dan DLL untuk digunakan.
2. Definisi Masalah Memanggil Fungsi DLL:
Ketika output di dll: fungsi abc: iinterface;
Panggilan fungsi didefinisikan sebagai berikut dalam program:
jenis
Tfunc = function: iinterface;
Kesalahan aneh akan terjadi, yang harus didefinisikan sama dengan yang didefinisikan dalam DLL:
jenis
Tfunc = function: iinterface;
3. Saat menggunakan antarmuka di DLL, ingatlah untuk mengaturnya ke nil sebelum objek dilepaskan di DLL setelah digunakan;
4. Debugging DLL di Delphi: Saya sering menghadapi masalah yang tidak dapat saya tambahkan breakpoint saat men -debug DLL. Periksa pengaturan di DLL, apakah jalur output dari DLL yang dikompilasi sama dengan pengaturan jalur program utama yang memanggil DLL, dan harus menjadi jalur absolut;
5. Dalam "DLL Encapsulation and Calling Object Technology di Delphi", batasan utama DLL pada objek enkapsulasi adalah
?
2. . .
3. . .
Tampaknya tidak ada batasan seperti itu tentang cara menggunakan objek dalam program utama untuk DLL, saya bertanya -tanya mengapa?