2007/12/05 | #pragma comment(lib,"ws2_32.lib")
类别(计算机与编程) | 评论(0) | 阅读(1230) | 发表于 14:37

#pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。

和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的 程序别人在使用你的代码的时候就
不用再设置工程settings了。告诉连接器连接的时候要找ws2_32.lib,这样你就不用在linker的lib设置
里指定这个lib了。

比如:
#include "Mwic_32.h"
#pragma comment(lib,"Mwic_32.lib")

就不需要在project setting里面设置了

注释 pragma 可以允许用户在目标文件或可执行文件中插入注释。lib 指定符允许用户向链接器传递该注释,以在使用对象模块时指定其它的链接库。有些用户使用 lib 注释 pragma 以添加链接器选项和库名,例如:
#pragma comment(lib, "MSVCRT -VERBOSE")
在 Visual C++ 2.x 中,代码行照原样将字符串传递给链接器,结果导致编译时附加了 /VERBOSE 链接器选项和 MSVCRT.LIB 库。但是,这种情况并不仅限于上述方式。编译器不会将注释字符串放在引号内,而会用空格分隔文本。

在 Visual C++ 4.0、4.1、和 4.2 中,编译器将注释字符串正确地放在引号内,因而导致上述代码产生以下错误: LINK :fatal error LNK1104:cannot open file "MSVCRT -VERBOSE.lib"

解决方案
使用下列新的 pragma 来指定链接器选项:
#pragma comment(linker, "<linker options>")

状态
这种现象是设计使然。

更多信息
示例代码

// Compile options needed:none// test.c#pragma comment(lib,"MYLIBRARY -VERBOSE")void main(void){}

1

评论Comments

日志分类
首页[666]
计算机与编程[133]
EMU[40]
UFOs[24]
房产[127]
音乐[13]
LOG[0]
经济[120]
影视[3]
物理[7]
数学[8]
社会[105]
职场[9]
生物医学[18]
生活[59]