Apa #pragma comment
artinya berikut ini?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Apa #pragma comment
artinya berikut ini?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Jawaban:
#pragma comment
adalah arahan kompiler yang menunjukkan Visual C ++ untuk meninggalkan komentar di file objek yang dihasilkan. Komentar kemudian dapat dibaca oleh tautan saat memproses file objek.
#pragma comment(lib, libname)
memberitahu linker untuk menambahkan perpustakaan 'libname' ke daftar dependensi perpustakaan, seolah-olah Anda telah menambahkannya di properti proyek di Linker->Input->Additional dependencies
Lihat komentar #pragma di MSDN
Saya selalu menyebut mereka "arahan kompiler." Mereka mengarahkan kompiler untuk melakukan hal-hal, percabangan, termasuk lib seperti yang ditunjukkan di atas, menonaktifkan kesalahan tertentu, dll, selama fase kompilasi.
Perusahaan penyusun biasanya membuat ekstensi sendiri untuk memfasilitasi fitur mereka. Sebagai contoh, (saya percaya) Microsoft memulai kesepakatan "#pragma once" dan itu hanya di produk MS, sekarang saya tidak begitu yakin.
Arahan Pragma Ini termasuk "komentar #pragma" di tabel yang akan Anda lihat.
HTH
Saya menduga GCC, misalnya, memiliki set # pragma mereka sendiri.
#pragma comment
artinya.
Arahan Pragma menentukan opsi kompiler sistem operasi atau spesifik mesin (x86 atau x64 dll.). Ada beberapa opsi yang tersedia. Detail dapat ditemukan di https://msdn.microsoft.com/en-us/library/d9x1s805.aspx
#pragma comment( comment-type [,"commentstring"] )
memiliki format ini.
Lihat https://msdn.microsoft.com/en-us/library/7f0aews7.aspx untuk detail tentang berbagai jenis komentar.
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Baris kode di atas termasuk nama perpustakaan (atau jalur) yang perlu dicari oleh penghubung. Rincian ini termasuk sebagai bagian dari catatan pencarian perpustakaan di file objek.
Jadi, dalam hal ini kernel.lib
dan user32.lib
dicari oleh linker dan termasuk dalam final executable.
Jawaban dan dokumentasi yang disediakan oleh MSDN adalah yang terbaik, tetapi saya ingin menambahkan satu kasus khas yang saya gunakan banyak yang mengharuskan penggunaan #pragma comment
untuk mengirim perintah ke tautan pada waktu tautan misalnya
#pragma comment(linker,"/ENTRY:Entry")
beri tahu linker untuk mengubah formulir entri WinMain()
ke Entry()
setelah itu CRTStartup
akan mentransfer kontrol keEntry()
Linker -> General -> Additional Library Directories
)?