#pragma comment

#pragma comment

向一个对象文件或可执行文件中添加一条注释记录。

语法

#pragma comment(comment-type[,"comment-string"])

备注

comment-type是下面介绍的几种预处理标识之一,它指定注释记录的类型。comment-string是可选的,它是一个字符串字面量,用来为某些注释类型提供额外的信息。因为comment-string是一个字符串字面量,它遵循转义字符、嵌套的双引号和连接的全部规则。

compiler

在对象文件中添加编译器的名字和版本号。这个注释记录会被链接器忽略。如果你为这种记录类型提供了comment-string参数,编译器将产生一个警告。

lib

在对象文件中添加一个库搜索记录。这个注释类型必须提供一个comment-string参数,comment-string提供你想要让链接器搜索的库的名字(或者可能是路径)。库名字遵从该对象文件的默认库搜索记录。只要这个库没有被指定为/nodefaultlib,链接器就会以和从命令行指定库相同的方式搜索这个库。你可以在一个文件中添加多条搜索库的记录。记录在对象文件中的顺序与它在源代码中的一致。
如果默认库和附加库的顺序很重要,使用/Zl编译选项将会阻止默认库名字被添加到对象模块中。然后可以用第二条注释指令在附加库的后面添加默认库的名字。用这些指令直接列出的库在对象模块中将保持和源代码中一样的顺序。

linker

为对象文件添加一个链接器选项。你可以用这个注释类型指定一个链接器选项,而不通过命令行传递或者在开发环境中指定。例如,你可以指定/include选项来强制包含一个符号:
#pragma comment(linker, "/include:__mySymbol")
只有下面的链接器选项可以传递给链接器标识符。

  • /DEFAULTLIB,指定一个默认库以解析外部引用。语法:/DEFAULTLIB:library
  • /EXPORT,通过名字或顺序或数据从程序中导出一个方法。语法:/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
  • /INCLUDE,强制符号引用。语法:/INCLUDE:symbol
  • /MANIFESTDEPENDENCY,指定清单依赖。语法:/MANIFESTDEPENDENCY:manifest_dependency
  • /MERGE,合并节。语法:/MERGE:from=to
  • /SECTION,指定节属性。语法:/SECTION:name,[[!]{D|E|K|P|R|S|W}][,ALIGN=number]

user

为对象文件添加一个一般注释。comment-string参数包含注释的文本。这个注释记录被链接器忽略。

例子

下面的指令使链接器在链接时搜索EMAPI.LIB库。链接器首先在当前工作目录搜索,然后在LIB环境变量中指定的路径搜索。
#pragma comment( lib, "emapi" )

下面的指令使链接器在对象文件中添加编译器的名字和版本号:
#pragma comment( compiler )

对于使用comment-string参数的注释,你可以使用任何可以展开为字面量的宏。你也可以连接任意字面量和可展开为字面量的宏。例如,下面的语句是可行的:
#pragma comment( user, "Compiled on " __DATE__ " at " __TIME__ )

posted @ 2022-05-20 15:28  啊循  阅读(911)  评论(0编辑  收藏  举报