您的位置:首页 > 其它

关于#pragma comment(lib,"ws2_32.lib")和 #pragma warning(disable : 4786)

2012-11-21 15:36 447 查看
关于#pragma comment(lib,"ws2_32.lib")(转)

#pragma warning(disable : 4786) 有什么用呢?

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

和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的程序别人在使用你的代码的时候就不用再设置工程settings了。

手工设置的步骤如下

快捷键“Alt+F7”进入工程设置之后,LINK-----OBJECT/LIBRARY MODULES里面设置有一样的效果:

ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

告诉连接器连接的时候要找ws2_32.lib,这样你就不用在linker的lib设置里指定这个lib了。

ws2_32.lib是winsock2的库文件

WinSock2就相当于连接系统和你使用的软件之间交流的一个接口,可能这个功能就是修复软件与系统正确的通讯的作用。

Q:

近期看socket的程序发现有的#pragma comment(lib,"wsock32")

有的#pragma comment(lib,"ws2_32")

是不是有两个版本的WinSock2?

A:

CSocket在WSock32.dll中实现

Socket API在ws2_32.dll实现

这两个DLL是两个不同层次的接口,调用关系如下:

网络应用程序->CSocket(WSock32.dll)->Socket API(ws2_32.dll)-> 网络传输服务进程


#pragma warning(disable : 4786) 有什么用呢?禁止显示4786警告,
因为用STL时4786这个警告总是有很多, 其它有意义的警告混在当中很难找.

这一行要写在所有.h包含之前才有效.

追问

什么情况要用到这些?出现警告的时候?

回答

一般只要用STL就加上。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: