Co oznacza "# pragma comment"?

Co oznacza #pragma comment poniżej?

#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Author: Guy Avraham, 2010-08-14

4 answers

#pragma comment jest dyrektywą kompilatora, która wskazuje Visual C++ na pozostawienie komentarza w wygenerowanym pliku obiektowym. Komentarz może być następnie odczytany przez linker podczas przetwarzania plików obiektowych.

#pragma comment(lib, libname) mówi linkerowi, aby dodał bibliotekę 'libname' do listy zależności bibliotek, tak jakby została dodana we właściwościach projektu w Linker->Input->Additional dependencies

Zobacz # pragma komentarz na MSDN

 148
Author: KeatsPeeks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-21 17:32:43

Zawsze nazywałem je " dyrektywami kompilatora."Kierują kompilator do robienia rzeczy, rozgałęziania, w tym bibliotek, jak pokazano powyżej, wyłączania określonych błędów itp., w fazie kompilacji.

Firmy Kompilujące zazwyczaj tworzą własne rozszerzenia w celu ułatwienia ich funkcjonalności. Na przykład (jak sądzę) Microsoft zaczął umowę "# pragma raz " i to było tylko w produktach MS, teraz nie jestem taki pewien.

Dyrektywy Pragma zawiera "komentarz # pragma" w stolik, który zobaczysz.

HTH

Podejrzewam, że np. GCC ma swój własny zestaw # pragma.

 4
Author: JustBoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-17 04:40:02

Te linki w bibliotekach wybranych w MSVC++.

 0
Author: bobobobo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 17:46:03

Dyrektywy Pragma określają opcje kompilatora systemu operacyjnego lub maszyny (x86 lub x64 itd.). Dostępnych jest kilka opcji. Szczegóły można znaleźć w https://msdn.microsoft.com/en-us/library/d9x1s805.aspx

#pragma comment( comment-type [,"commentstring"] ) mA ten format.

Refer https://msdn.microsoft.com/en-us/library/7f0aews7.aspx aby uzyskać szczegółowe informacje o różnych typach komentarzy.

#pragma comment(lib, "kernel32") #pragma comment(lib, "user32")

Powyższe linie kodu zawierają nazwy bibliotek (lub ścieżki), które muszą być / align = "left" / Dane te są dołączane jako część rekordu wyszukiwania biblioteki w obiekcie plik.

Tak więc, w tym przypadku kernel.lib i {[3] } są przeszukiwane przez łącznik i zawarte w finalnym pliku wykonywalnym.

 0
Author: Shrikanth N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-17 07:48:17