Di akhir bagian kedua tutorial ini, kita menemui masalah kecil, tapi sejujurnya itu masalah besar. Jika kita punya waktu, masalah ini akan sepadan dengan upaya kita untuk mempelajarinya.
Ingat bagaimana kita menghadapi masalah itu? Pada saat itu, kami terlebih dahulu mengkompilasi ActiveXDLL dan kemudian mengkompilasi program pengujian yang menggunakan DLL tersebut. Selanjutnya kita kompilasi ulang DLL dengan asumsi isi DLL perlu diubah. Namun, ketika saya menjalankan program pengujian lagi, terjadi kesalahan!
Ya, tentu saja hal itu tidak mungkin terjadi.
Karena pengalaman memberi tahu kita bahwa ini adalah masalah kompatibilitas. Jadi, penanganannya bisa seperti ini:
Mulai Visual Basic dan buka proyek Northwind;
Pilih menu "PRoject"->"NorthwindProperties";
Klik tab "Komponen";
Menjelajahi konten halaman "VersionCompatibility", Anda dapat menemukan tiga opsi. Izinkan saya menjelaskannya sekarang:
NoCompatibility - Setiap kali Anda mengkompilasi, komponen COM pengguna ditandai dengan tag baru, yang berarti program hanya dapat menggunakan tag lama (versi sebelumnya) dari DLL.
ProjectCompatibility - Komponen COM pengguna tidak selalu ditandai dengan tag baru setiap kali dikompilasi. Jika ya, aplikasi apa pun yang sedang digunakan akan gagal. Faktanya, ini hanya akan terjadi jika proyek saat ini berbeda secara signifikan dari proyek DLL yang dikompilasi.
BinaryCompatibility - Setiap kali dikompilasi, aplikasi selalu berusaha menyimpan tag DLL yang telah dikompilasi sebelumnya, sehingga memastikan aplikasi yang digunakan tidak mengalami blue screen of death. Namun, jika DLL yang akan dikompilasi saat ini terlalu berbeda dengan DLL yang dikompilasi sebelumnya, tag baru akan ditandai.
Mari kita uji argumen di atas:
Buka program pengujian dari bagian sebelumnya tutorial ini;
Kompilasi ulang;
Cobalah dan itu akan berfungsi normal;
Buka proyek ActiveXDLL;
Setel propertinya ke BinaryCompatibility;
Kompilasi ulang DLL;
Cobalah program pengujian dan itu akan berfungsi dengan baik.
Oke, sepertinya masalahnya sudah terpecahkan. Namun ketika DLL dikompilasi ulang, sebagian besar pengembang akan mengalami situasi ketidakcocokan lainnya.
Apakah tidak ada solusi yang lebih baik? Mari kita kesampingkan masalah ini sekarang!
Anda dapat mengunjungi situs berikut untuk konten lebih lanjut:
www.PylonOfTheMonth.co.uk.->