Bagikan melalui


Jenis DLL

Topik ini menyediakan informasi untuk membantu Anda menentukan jenis DLL yang akan dibangun.

Berbagai Jenis DLL yang Tersedia

Dengan menggunakan Visual Studio, Anda dapat membuat DLL Win32 di C atau C++ yang tidak menggunakan pustaka Microsoft Foundation Class (MFC). Anda dapat membuat proyek DLL non-MFC dengan Panduan Aplikasi Win32.

Pustaka MFC itu sendiri tersedia, baik di pustaka tautan statis atau di sejumlah DLL, dengan Wizard DLL MFC. Jika DLL Anda menggunakan MFC, Visual Studio mendukung tiga skenario pengembangan DLL yang berbeda:

  • Membangun DLL MFC reguler yang secara statis menautkan MFC

  • Membangun DLL MFC reguler yang secara dinamis menautkan MFC

  • Membangun DLL ekstensi MFC, yang selalu menautkan MFC secara dinamis

Apa yang ingin Anda ketahui lebih lanjut?

Memutuskan Jenis DLL mana yang akan Digunakan

Jika DLL Anda tidak menggunakan MFC, gunakan Visual Studio untuk membuat DLL Win32 non-MFC. Menautkan DLL Anda ke MFC (baik secara statis atau dinamis) membutuhkan ruang disk dan memori yang signifikan. Anda tidak boleh menautkan ke MFC kecuali DLL Anda benar-benar menggunakan MFC.

Jika DLL Anda akan menggunakan MFC, dan akan digunakan oleh aplikasi MFC atau non-MFC, Anda harus membangun DLL MFC reguler yang secara dinamis menautkan ke MFC atau DLL MFC reguler yang secara statis terhubung ke MFC. Dalam kebanyakan kasus, Anda mungkin ingin menggunakan DLL MFC reguler yang secara dinamis menautkan ke MFC karena ukuran file DLL akan jauh lebih kecil dan penghematan memori dari menggunakan versi bersama MFC bisa signifikan. Jika Anda secara statis menautkan ke MFC, ukuran file DLL Anda akan lebih besar dan berpotensi mengambil memori tambahan karena memuat salinan privatnya sendiri dari kode pustaka MFC.

Membangun DLL yang secara dinamis menautkan ke MFC lebih cepat daripada membangun DLL yang secara statis terhubung ke MFC karena tidak perlu menautkan MFC itu sendiri. Ini terutama berlaku dalam build debug di mana linker harus memampatkan informasi debug. Dengan menautkan dengan DLL yang sudah berisi informasi debug, ada lebih sedikit informasi debug untuk dikompilasi dalam DLL Anda.

Salah satu kerugian untuk menautkan secara dinamis ke MFC adalah Anda harus mendistribusikan DLL bersama Mfcx0.dll dan Msvcrxx.dll (atau file serupa) dengan DLL Anda. DLL MFC dapat didistribusikan ulang secara bebas, tetapi Anda masih harus menginstal DLL dalam program penyiapan Anda. Selain itu, Anda harus mengirim Msvcrxx.dll, yang berisi pustaka run-time C yang digunakan oleh program Anda dan DLL MFC itu sendiri.

Jika DLL Anda hanya akan digunakan oleh executable MFC, Anda memiliki pilihan antara membangun DLL MFC reguler atau DLL ekstensi MFC. Jika DLL Anda menerapkan kelas yang dapat digunakan kembali yang berasal dari kelas MFC yang ada atau Anda perlu meneruskan objek turunan MFC antara aplikasi dan DLL, Anda harus membangun DLL ekstensi MFC.

Jika DLL Anda secara dinamis ditautkan ke MFC, DLL MFC mungkin didistribusikan ulang dengan DLL Anda. Arsitektur ini sangat berguna untuk berbagi pustaka kelas antara beberapa file yang dapat dieksekusi untuk menghemat ruang disk dan meminimalkan penggunaan memori.

Apa yang ingin Anda ketahui lebih lanjut?

Baca juga

Membuat C/C++ DLL di Visual Studio