#pragma   comment()

把所需要的外部库文件加到工程中来。  
  #pragma   comment(   lib,"xxx.lib"   )  
   
  每个编译程序可以用#pragma指令激活或终止该编译程序支持的一些编译功能。  
  每个编译器对#pragma的实现不同,在一个编译器中有效在别的编译器中几乎无效。可从编译器的文档中查看。

在所有的预处理指令中,#Pragma   指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。  
  其格式一般为:   #Pragma   Para  
  其中Para   为参数,下面来看一些常用的参数。  
   
  (1)message   参数。   Message   参数是我最喜欢的一个参数,它能够在编译信息输出窗  
  口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:  
  #Pragma   message(“消息文本”)  
  当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。  
  当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法  
  #ifdef   _X86  
  #Pragma   message(“_X86   macro   activated!”)  
  #endif  
  当我们定义了_X86这个宏以后,应用程序在编译时就会在编译输出窗口里显示“_  
  X86   macro   activated!”。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了  
  。  
   
  (2)另一个使用得比较多的pragma参数是code_seg。格式如:  
  #pragma   code_seg(   ["section-name"[,"section-class"]   ]   )  
  它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。  
   
  (3)#pragma   once   (比较常用)  
  只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用它。  
   
  (4)#pragma   hdrstop表示预编译头文件到此为止,后面的头文件不进行预编译。BCB可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这个选项排除一些头文件。    
  有时单元之间有依赖关系,比如单元A依赖单元B,所以单元B要先于单元A编译。你可以用#pragma   startup指定编译优先级,如果使用了#pragma   package(smart_init)   ,BCB就会根据优先级的大小先后编译。    
   
  (5)#pragma   resource   "*.dfm"表示把*.dfm文件中的资源加入工程。*.dfm中包括窗体  
  外观的定义。    
   
  (6)#pragma   warning(   disable   :   4507   34;   once   :   4385;   error   :   164   )  
  等价于:  
  #pragma   warning(disable:4507   34)   //   不显示4507和34号警告信息  
  #pragma   warning(once:4385)   //   4385号警告信息仅报告一次  
  #pragma   warning(error:164)   //   把164号警告信息作为一个错误。  
  同时这个pragma   warning   也支持如下格式:  
  #pragma   warning(   push   [   ,n   ]   )  
  #pragma   warning(   pop   )  
  这里n代表一个警告等级(1---4)。  
  #pragma   warning(   push   )保存所有警告信息的现有的警告状态。  
  #pragma   warning(   push,   n)保存所有警告信息的现有的警告状态,并且把全局警告  
  等级设定为n。    
  #pragma   warning(   pop   )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的  
  一切改动取消。例如:  
  #pragma   warning(   push   )  
  #pragma   warning(   disable   :   4705   )  
  #pragma   warning(   disable   :   4706   )  
  #pragma   warning(   disable   :   4707   )  
  //.......  
  #pragma   warning(   pop   )    
  在这段代码的最后,重新保存所有的警告信息(包括4705,4706和4707)。  
  (7)pragma   comment(...)  
  该指令将一个注释记录放入一个对象文件或可执行文件中。  
  常用的lib关键字,可以帮我们连入一个库文件。

#pragma comment()相关推荐

  1. [转]pragma comment的使用

    pragma comment的使用 该宏放置一个注释到对象文件或者可执行文件. #pragma comment( comment-type [,"commentstring"] ) ...

  2. [转]#pragma once和#pragma comment

    编程经常碰到,理解的总不是很透彻,在这里查阅资料总结一下! 在编写程序的时候,我们常用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. #pragma once : 这是一个 ...

  3. VS2008下利用#pragma comment屏蔽VC/VS生成的exe程序的CMD窗口

    2016-6-1日注:此种方法并不适用于VS2012,在VS2012中屏蔽CMD的方法可以见博文:VS2012及VS系列怎样屏蔽CMD窗口~_昊虹图像算法-CSDN博客_vs 不打开cmd 有时候我们 ...

  4. 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...

    众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种 ...

  5. C++ #pragma comment语法(预处理指令)

    #pragma comment的使用方法 pragma预处理指令详解 后更

  6. pragma comment的使用 pragma预处理指令详解

    pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注 ...

  7. #pragma comment(linker,/SECTION:shared,RWS)

    Windows在一个Win32程序的地址空间周围筑了一道墙.通常,一个程序的地址空间中的数据是私有的,对别的程序而言是不可见的.但是执行多个执行实体表示了程序的所有执行实体之间共享数据是毫无问题的.当 ...

  8. #pragma comment和#pragma 预处理指令详解

    该宏放置一个注释到对象文件或者可执行文件. 例如,#pragma   comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库. 和在工程设置里写上链入 ...

  9. 预处理指令pragma常见用法集锦(#pragma once、#pragma comment和#pragma warning)

    #pragma once: 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,避免文件被重复包含. ********************************* ...

  10. QT error: LNK2019: 无法解析的外部符号 __imp__SendMessageW@ 类型的错误 以及 pragma comment 的作用(用法)

    使用QT Creator 开发一个通讯项目时候,需要使用windows系统函数,比如: #include <windows.h> #include <WinUser.h> .. ...

最新文章

  1. npm导入bootstrap_vue cli3.0如何通过npm引入jquery和bootstrap?
  2. Zookeeper原生客户端
  3. 判断一个矩阵是否可对角化
  4. DataGrid中添加DropdownList时的数据绑定
  5. nginx的502问题
  6. 二分查找、upper_bound、lower_bound
  7. 有什么作用_轴套有什么作用?
  8. TCP 协议的三次握手、四次分手
  9. GDC2017访谈: 这3个工具让VR开发者事半功倍
  10. 怎样用 Python 控制图片人物动起来?一文就能 Get!
  11. android p下载地址,Android P发布,4款国产手机可体验,附下载地址
  12. php相差天数,php获取给定日期相差天数
  13. python os.access_Python用access判断文件是否被占用的实例方法
  14. 下docfetcher先下Java,DocFetcher ── 以 JAVA 编写的开源桌面本地文件全文搜索工具...
  15. Java代码实现24点计算
  16. 《黑客大曝光:移动应用安全揭秘及防护措施》一2.1 基础移动网络功能
  17. 爬虫关键信息获取与MongoDB数据库使用方法
  18. android—性能优化2—内存优化
  19. matlab赋值一行,matlab – 0和1的矩阵,其中后续行中的赋值取决于前一行
  20. 汇报工作,被总监怼了!让我学习:麦肯锡的结构化思考、SCQA表达框架

热门文章

  1. bzoj1415 noi2005 聪聪和可可 期望
  2. 天线理论知识5——微带天线
  3. Python写倒三角
  4. Spark-SQL简介
  5. nginx -s reload命令
  6. 2. 如何给在 SAP Business Application Studio 里开发的 OData 服务准备测试数据
  7. 如何理解升米恩、斗米仇?
  8. 指定时间几个月(自然月)之后的时间
  9. 关于ARM核心板、一体板、底板的知识分享
  10. 基于Python的招聘信息的大数据可视化分析系统