关于#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)-> 网络传输服务进程