zoukankan      html  css  js  c++  java
  • winsock2编译出错

      写了一个winsock UDP数据传输的类,当合到大的工程里面的时候,出现的首要问题是说winsock.h和winsock2.h里有重定义,还伴随着各种问题。。。发现时因为大工程里有include windows.h文件,而windows.h文件里又include<winsock.h>文件,所以重定义。于是对这个问题搜索了一下,发现有两个解决方法。

      一个是说windows.h被包含进来了,位置是:
          afxwin.h包含afx.h
          afx.h包含afxver_.h
          afxver_.h包含afxv_w32.h
          afxv_w32.h包含windows.h
          但包含windows.h的时候没有包含winsock.h

    // Don't include winsock.h
    #pragma push_macro("_WINSOCKAPI_")
    #ifndef _WINSOCKAPI_
    #define _WINSOCKAPI_
    #endif
     
    #include <windows.h>
     
    #pragma pop_macro("_WINSOCKAPI_")
    

        所以你要使用winsock2的函数就很简单了
        #include <winsock2.h>
        #pragma comment(lib, "Ws2_32.lib")

      第二种是说将windows.h里的winsock换成winsock2就可以,但是这样只是在自己电脑上可以。。不是很好的方法。。。

     

  • 相关阅读:
    Codeforces Canda Cup 2016
    Codeforces Round #377(div 2)
    后缀数组专题
    Codeforces Round #375(div 2)
    Codeforces Round #374(div 2)
    [HDU5902]GCD is Funny(xjb搞)
    [HDU5904]LCIS(DP)
    HDU 1251统计难题
    POJ2104 K-TH NUMBER 传说中的主席树
    poj 3041
  • 原文地址:https://www.cnblogs.com/tlsdba/p/2764923.html
Copyright © 2011-2022 走看看