青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Where there is a dream ,there is hope

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  64 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

今天寫(xiě)一個(gè)小程序出現(xiàn)了這種問(wèn)題:
>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: “AF_IPX”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460) : 參見(jiàn)“AF_IPX”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(127) : warning C4005: “AF_MAX”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(479) : 參見(jiàn)“AF_MAX”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(163) : warning C4005: “SO_DONTLINGER”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(402) : 參見(jiàn)“SO_DONTLINGER”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(206) : error C2011: “sockaddr”: “struct”類型重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(485) : 參見(jiàn)“sockaddr”的聲明
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: 語(yǔ)法錯(cuò)誤 : 缺少“}”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: 語(yǔ)法錯(cuò)誤 : 缺少“;”(在“常量”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2059: 語(yǔ)法錯(cuò)誤 : “常量”
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C2143: 語(yǔ)法錯(cuò)誤 : 缺少“;”(在“}”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C4430: 缺少類型說(shuō)明符 - 假定為 int。注意: C++ 不支持默認(rèn) int
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(437) : error C4430: 缺少類型說(shuō)明符 - 假定為 int。注意: C++ 不支持默認(rèn) int
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(518) : warning C4005: “IN_CLASSA”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(287) : 參見(jiàn)“IN_CLASSA”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(524) : warning C4005: “IN_CLASSB”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(293) : 參見(jiàn)“IN_CLASSB”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(530) : warning C4005: “IN_CLASSC”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(299) : 參見(jiàn)“IN_CLASSC”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(541) : warning C4005: “INADDR_ANY”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(304) : 參見(jiàn)“INADDR_ANY”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(543) : warning C4005: “INADDR_BROADCAST”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(306) : 參見(jiàn)“INADDR_BROADCAST”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(577) : error C2011: “sockaddr_in”: “struct”類型重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(312) : 參見(jiàn)“sockaddr_in”的聲明
1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(132) : error C2011: “fd_set”: “struct”類型重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(68) : 參見(jiàn)“fd_set”的聲明
1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(167) : warning C4005: “FD_SET”: 宏重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(102) : 參見(jiàn)“FD_SET”的前一個(gè)定義
1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock2.h(176) : error C2011: “timeval”: “struct”類型重定義
1>        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(111) : 參見(jiàn)“timeval”的聲明


好久沒(méi)寫(xiě)TCP的程序了,都忘記是怎么回事了,隱約記得解決方法很簡(jiǎn)單。搜索了一下,記錄下來(lái):

引用鏈接:http://www.cnblogs.com/tonyyang132/archive/2009/10/14/1583110.html

初看到如此一堆的錯(cuò)誤委實(shí)不爽,但是只要將二者的包含順序調(diào)換一下問(wèn)題就會(huì)解決,原因參見(jiàn)下面那個(gè)鏈接。另外,上述問(wèn)題不僅影響直接包含二者的文件,還影響間接包含的情形。比如,a.h包含了windows.h,b.h包含了winsock2.h,如果在c.h當(dāng)中要引用a.h和b.h,那么正確的順序應(yīng)當(dāng)是b.h先于a.h。當(dāng)然,實(shí)踐當(dāng)中有時(shí)很難找到究竟是哪兩個(gè)文件順序不對(duì)了,終極的解決辦法是,在當(dāng)前工程(就是編譯不過(guò)的這個(gè)工程)所有include語(yǔ)句最前面加上#include <winsock2.h>和#include<windows.h>,世界清靜了。


關(guān)于WINSOCK.H與winsock2.h中的重定義解決辦法分析
問(wèn)題描述:在 VC 6.0中使用socket相關(guān)的函數(shù)時(shí)沒(méi)有什么問(wèn)題,可是到了.net下就有以下類似的錯(cuò)誤,
[C++ Error] winsock2.h(109): E2238 Multiple declaration for 'fd_set'
[C++ Error] winsock.h(54): E2344 Earlier declaration of 'fd_set'
[C++ Error] winsock2.h(112): E2146 Need an identifier to declare
[C++ Warning] winsock2.h(144): W8017 Redefinition of 'FD_SET' is not identical
[C++ Error] winsock2.h(153): E2238 Multiple declaration for 'timeval'
[C++ Error] winsock.h(97): E2344 Earlier declaration of 'timeval'
[C++ Error] winsock2.h(209): E2238 Multiple declaration for 'hostent'
[C++ Error] winsock.h(153): E2344 Earlier declaration of 'hostent'
[C++ Error] winsock2.h(222): E2238 Multiple declaration for 'netent'
[C++ Error] winsock.h(166): E2344 Earlier declaration of 'netent'
[C++ Error] winsock2.h(229): E2238 Multiple declaration for 'servent'
[C++ Error] winsock.h(173): E2344 Earlier declaration of 'servent'
[C++ Error] winsock2.h(241): E2238 Multiple declaration for 'protoent'
[C++ Error] winsock.h(185): E2344 Earlier declaration of 'protoent'
[C++ Error] winsock2.h(327): E2238 Multiple declaration for 'in_addr'
[C++ Error] winsock.h(269): E2344 Earlier declaration of 'in_addr'
[C++ Error] winsock2.h(385): E2238 Multiple declaration for 'sockaddr_in'
[C++ Error] winsock.h(319): E2344 Earlier declaration of 'sockaddr_in'
[C++ Error] winsock2.h(395): E2238 Multiple declaration for 'WSAData'
[C++ Error] winsock.h(329): E2344 Earlier declaration of 'WSAData'
[C++ Error] winsock2.h(411): E2146 Need an identifier to declare
[C++ Warning] winsock2.h(455): W8017 Redefinition of 'SO_DONTLINGER' is not identical
[C++ Warning] winsock2.h(512): W8017 Redefinition of 'AF_IPX' is not identical
[C++ Warning] winsock2.h(540): W8017 Redefinition of 'AF_MAX' is not identical
[C++ Error] winsock2.h(546): E2238 Multiple declaration for 'sockaddr'
[C++ Error] winsock.h(492): E2344 Earlier declaration of 'sockaddr'
[C++ Error] winsock2.h(586): E2238 Multiple declaration for 'sockproto'
[C++ Error] winsock.h(501): E2344 Earlier declaration of 'sockproto'
[C++ Error] winsock2.h(625): E2238 Multiple declaration for 'linger'
[C++ Error] winsock2.h(625): E2228 Too many error or warning messages

Solution:

This problem arises because windows.h (at least, that version of it) includes not winsock2.h but winsock.h; sadly when Microsoft wrote winsock2.h they chose neither to change windows.h to include winsock2.h, which replaces winsock.h, nor to include windows.h from winsock2.h and then add the definitions for the new Winsock 2 API methods & structures (this might seem reasonable since Winsock 2 does, strictly speaking, replace Winsock 1, but since the API must be fully backwards-compatible the distinction is somewhat meaningless and there's no real benefit to making winsock2.h standalone).

The fix is thankfully simple: always "#include <winsock2.h>" before windows.h.

However, you must remember that if windows.h has been included by (for example) a higher-level header file that is subsequently including your header file, it's too late - so you must make sure that the higher-level header files respect this convention also.

It is however rarely necessary to modify the header files of libraries or other code modules you are using just because you include their header files, and their header files include windows.h - you can just include winsock2.h before you include the library's header files.


在包含jrtplib有時(shí)候我也遇到這個(gè)問(wèn)題,解決方法與之相同。一句話,在#include<windows.h>之前 #include <winsock2.h> 問(wèn)題就可以解決。

問(wèn)題描述]
   在包含了<windows.h>以及<winsock2.h>的工程中,編譯有時(shí)會(huì)出現(xiàn)如
下錯(cuò)誤:

     error C2011: 'fd_set' : 'struct' type redefinition
     error C2011: 'timeval' : 'struct' type redefinition
                     ....
     error C2375: 'accept' : redefinition; different linkage
[原因分析]
   主要原因是因?yàn)?lt;windows.h>中包含了<winsock.h>頭文件,由于其版
本的不同,導(dǎo)致出
現(xiàn)上述的錯(cuò)誤。<windows.h>中相關(guān)代碼如下:
               #ifndef WIN32_LEAN_AND_MEAN
               #include <cderr.h>
               #include <dde.h>
               #include <ddeml.h>
               ........
                #ifndef _MAC
               #include <winperf.h>
               #include <winsock.h>
               #endif
                .......

               #include <commdlg.h>
               #endif
               #endif
[解決方案]
    由以上代碼可以看出如果在沒(méi)有定義WIN32_LEAN_AND_MEAN宏
的大前
提下windows.h有可能包含winsock.h 頭文件,因此我們得出一個(gè)很簡(jiǎn)單
的解決方
法就是在包含<windows.h>之前定義WIN32_LEAN_AND_MEAN宏,如
下所示:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

posted on 2010-12-07 15:30 IT菜鳥(niǎo) 閱讀(1171) 評(píng)論(0)  編輯 收藏 引用 所屬分類: TCP/IP

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            精品99一区二区| 男人的天堂成人在线| 久久久一二三| 久久精品国产视频| 欧美在线观看视频一区二区| 午夜精品av| 久久男女视频| 亚洲激情在线观看| 亚洲人成亚洲人成在线观看图片| 亚洲黄色免费电影| 99精品欧美一区二区三区综合在线| 99re热这里只有精品免费视频| 亚洲无人区一区| 欧美影院精品一区| 欧美精品综合| 国产精品视频一| 在线成人小视频| 亚洲影院一区| 欧美激情视频在线播放 | 欧美一区二区精美| 你懂的成人av| 国产日韩欧美在线观看| 亚洲黄色尤物视频| 欧美有码视频| 亚洲国产高清在线观看视频| 欧美一区二区三区精品 | 亚洲欧美一区二区精品久久久| 欧美一区国产一区| 亚洲国产精品一区| 香蕉久久国产| 欧美精品一区二区三区蜜桃| 国产日韩一区| 国产精品99久久久久久久女警 | 国语自产偷拍精品视频偷| 亚洲精品一二区| 久久久久久久久蜜桃| 日韩视频在线永久播放| 久久久亚洲人| 国产免费亚洲高清| 亚洲午夜国产成人av电影男同| 欧美11—12娇小xxxx| 午夜精品免费| 欧美午夜精品久久久久久孕妇| 在线看片一区| 免费成人黄色| 久久久精品国产免大香伊| 国产麻豆午夜三级精品| 亚洲与欧洲av电影| 日韩一级在线| 欧美日韩国产成人| 亚洲精品一区二区三区福利| 久久久久久夜精品精品免费| 亚洲欧美国产三级| 国产精品一区二区a| 亚洲综合欧美日韩| 亚洲视频福利| 国产精品网曝门| 性伦欧美刺激片在线观看| 99爱精品视频| 国产精品久久久久aaaa九色| 亚洲一区二区三区免费视频| 一本一本a久久| 国产精品日韩欧美综合| 校园春色综合网| 亚洲综合国产激情另类一区| 国产精品视频免费在线观看| 欧美在线观看网址综合| 亚洲欧美一区二区三区极速播放 | 亚洲高清在线| 亚洲国产天堂久久国产91| 欧美成人精品一区| 夜夜嗨av一区二区三区中文字幕 | 亚洲精品自在久久| 欧美午夜片在线观看| 亚洲欧美在线一区二区| 欧美亚洲自偷自偷| 中国日韩欧美久久久久久久久| 亚洲精品欧美| 欧美华人在线视频| 欧美成人免费网| 一本色道久久综合| 亚洲午夜未删减在线观看| 国产精品理论片在线观看| 欧美亚洲综合在线| 久久久久久久久久久久久久一区 | 国产有码一区二区| 欧美成人在线影院| 欧美日本亚洲视频| 欧美中文在线观看国产| 久久精品视频免费播放| 亚洲国内欧美| 亚洲午夜日本在线观看| 激情久久综合| 99国产精品国产精品久久| 国产精品亚洲人在线观看| 麻豆久久久9性大片| 欧美日韩网址| 免费亚洲电影在线观看| 欧美日一区二区三区在线观看国产免| 久久aⅴ乱码一区二区三区| 免费观看在线综合色| 亚洲一区二区免费| 老牛影视一区二区三区| 亚洲欧美综合| 欧美搞黄网站| 久久天天狠狠| 国产精品日韩高清| 亚洲国产天堂久久国产91| 国产日产亚洲精品系列| 最近看过的日韩成人| 国产专区一区| 亚洲综合欧美| 亚洲特级片在线| 欧美高潮视频| 欧美成人在线免费视频| 国产一级一区二区| 亚洲一区二区三区在线观看视频| 亚洲高清在线精品| 欧美专区福利在线| 欧美在现视频| 国产精品麻豆成人av电影艾秋| 亚洲丰满少妇videoshd| 1204国产成人精品视频| 欧美一区二区三区四区在线观看地址| 亚洲午夜免费视频| 欧美女主播在线| 91久久精品国产91久久| 精品成人一区二区三区| 性做久久久久久| 久久精品国产第一区二区三区| 欧美午夜片欧美片在线观看| 亚洲精品视频在线| 亚洲素人在线| 国产精品久久午夜夜伦鲁鲁| 99亚洲视频| 亚洲欧美日本视频在线观看| 欧美日韩国产综合网| 亚洲精品网站在线播放gif| 日韩一二三在线视频播| 欧美黄网免费在线观看| 国语自产精品视频在线看一大j8| 在线一区二区三区四区| 亚洲在线观看视频| 国产精品久久国产三级国电话系列| 日韩一级不卡| 午夜精品视频网站| 国产视频精品xxxx| 久久成人免费电影| 欧美1区免费| 日韩天堂在线视频| 欧美无乱码久久久免费午夜一区 | 久久精品综合| 黄色综合网站| 蜜乳av另类精品一区二区| 亚洲电影免费在线| 亚洲香蕉在线观看| 国产欧美日韩另类视频免费观看| 欧美在线你懂的| 亚洲国产欧美日韩精品| 亚洲一区视频在线| 国产亚洲美州欧州综合国| 久久青草欧美一区二区三区| 亚洲第一天堂无码专区| 在线亚洲伦理| 国产一区二区三区电影在线观看| 久久一二三区| 亚洲午夜久久久| 欧美18av| 亚洲欧美日韩一区在线观看| 国一区二区在线观看| 欧美久久久久久久| 亚洲专区免费| 亚洲国产成人精品久久久国产成人一区| 日韩视频永久免费| 国产模特精品视频久久久久 | 亚洲欧美综合精品久久成人| 好看不卡的中文字幕| 欧美黄在线观看| 性做久久久久久久久| 亚洲激情小视频| 久久九九全国免费精品观看| 亚洲欧洲在线观看| 国产一区二区精品丝袜| 欧美日韩亚洲一区| 久久青草久久| 亚洲欧美视频一区二区三区| 亚洲大黄网站| 久久综合色88| 欧美伊人久久大香线蕉综合69| 亚洲青涩在线| 尤妮丝一区二区裸体视频| 国产精品久久777777毛茸茸| 欧美va天堂| 久久人体大胆视频| 亚洲愉拍自拍另类高清精品| 亚洲人成网站在线观看播放| 狂野欧美激情性xxxx欧美| 久久国产66| 久久国产精品99精品国产| 午夜日韩电影|