Apabila cuba mengeksport kelas yang mengandungi std:: objek, seperti vektor atau rentetan, daripada DLL, anda mungkin menghadapi amaran tentang keperluan untuk antara muka dll. Amaran ini dicetuskan apabila pengkompil mengesan bahawa ahli jenis kompleks dalam kelas tidak ditandakan secara eksplisit untuk eksport DLL.
Ke hadapan mengisytiharkan jenis ahli dengan DLL_EXPORT boleh menangani sebahagian isu tersebut. Walau bagaimanapun, untuk memastikan pengeksportan fungsi ahli yang betul, kelas yang sepadan dalam unit kompilasi mereka juga mesti ditandakan sebagai DLL_EXPORT.
Keperluan ini berpunca daripada fakta bahawa pengkompil tidak dapat menentukan kaedah kelas mana yang digunakan oleh pelanggan daripada kelas DLL_EXPORTed. Oleh itu, ia menguatkuasakan bahawa semua kaedah yang boleh diakses mesti dieksport. Mengabaikan amaran dan melumpuhkannya tidak dinasihatkan dalam konteks ini.
Untuk menangani amaran untuk ahli bukan dll-eksport, pendekatan berikut boleh dipertimbangkan:
Dalam contoh disediakan, ke hadapan mengisytiharkan pengkhususan templat std::allocator
Atas ialah kandungan terperinci Bagaimanakah Anda Mengeksport Kelas yang Mengandungi std:: Objek daripada DLL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!