comment
pragma
Вставляет запись комментария в объектный или исполняемый файл.
Синтаксис
#pragma comment(
тип комментария [,
"comment-string" ])
Замечания
Тип комментария является одним из предопределенных идентификаторов, описанных ниже, который указывает тип записи комментариев. Необязательная строка примечания — это строковый литерал, предоставляющий дополнительные сведения для некоторых типов комментариев. Так как строка комментариев является строковым литералом, он подчиняется всем правилам для строковых литерала при использовании escape-символов, внедренных кавычки ("
) и объединения.
компилятор
Задает в объектном файле имя и номер версии компилятора. Эта запись комментария игнорируется компоновщиком. Если для этого типа записи указан параметр строки примечания, компилятор создает предупреждение.
lib
Задает в объектном файле запись поиска библиотеки. Этот тип комментария должен сопровождаться параметром строки комментария, который имеет имя (и, возможно, путь) библиотеки, которую требуется выполнить поиск компоновщиком. Имя библиотеки следует записям поиска библиотеки по умолчанию в файле объекта. Компоновщик выполняет поиск этой библиотеки так же, как если он указан в командной строке, если библиотека не указана с помощью /nodefaultlib
. Вы можете поместить несколько записей поиска библиотеки в один и тот же исходный файл. Каждая запись отображается в файле объекта в том же порядке, что и в исходном файле.
Если порядок библиотеки по умолчанию и добавленной библиотеки важен, компиляция с /Zl
параметром будет препятствовать размещению имени библиотеки по умолчанию в модуле объекта. Затем можно использовать второй комментарий pragma для вставки имени библиотеки по умолчанию после добавления библиотеки. Библиотеки, перечисленные с этими pragma директивами, будут отображаться в модуле объекта в том же порядке, что и в исходном коде.
компоновщик
Помещает параметр компоновщика в файл объекта. Благодаря этому параметр компоновщика можно не передавать из командной строки и не указывать в среде разработки, а задать непосредственно в комментарии. Например, в нем можно задать параметр /include, чтобы принудительно включить символ:
#pragma comment(linker, "/include:__mySymbol")
Доступны только следующие параметры компоновщика (тип комментария):
Пользователь
Вставляет в объектный файл комментарий общего рода. Параметр строки комментария содержит текст комментария. Эта запись комментария игнорируется компоновщиком.
Примеры
В следующем pragma случае компоновщик выполняет поиск EMAPI. Библиотека LIB при связывании. Компоновщик сначала выполняет поиск в текущем рабочем каталоге, а затем в пути, указанном в переменной среды LIB.
#pragma comment( lib, "emapi" )
В следующем pragma случае компилятор помещает имя и номер версии компилятора в файл объекта:
#pragma comment( compiler )
Примечания, которые принимают параметр строки комментария, можно использовать макрос в любом месте, где вы будете использовать строковый литерал, если макрос расширяется до строкового литерала. Кроме того, можно указать конкатенацию любого набора строковых литералов и макросов, которые развертываются в строковые литералы. Допустимым примером является следующая инструкция:
#pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ )