• <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>
            隨筆 - 132  文章 - 51  trackbacks - 0
            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(7)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            cocos2d-x

            OGRE

            OPenGL

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            今天編譯工程的時(shí)候遇到了這個(gè)問題,網(wǎng)上搜了下,掃噶,備忘一下
            問題描述:在 VC 6.0中使用socket相關(guān)的函數(shù)時(shí)沒有什么問題,可是到了.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è)問題,解決方法與之相同。一句話,在#include<windows.h>之前 #include <winsock2.h> 問題就可以解決。

            問題描述]
               在包含了<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
            [解決方案]
                由以上代碼可以看出如果在沒有定義WIN32_LEAN_AND_MEAN宏
            的大前
            提下windows.h有可能包含winsock.h 頭文件,因此我們得出一個(gè)很簡單
            的解決方
            法就是在包含<windows.h>之前定義WIN32_LEAN_AND_MEAN宏,如
            下所示:
            #define WIN32_LEAN_AND_MEAN
            #include <windows.h>

             原文地址 http://blog.sina.com.cn/s/blog_4906d564010094p8.html
            posted on 2010-10-23 14:01 風(fēng)輕云淡 閱讀(984) 評論(0)  編輯 收藏 引用 所屬分類: C++
            国产亚州精品女人久久久久久 | 久久久久中文字幕| 日韩久久久久久中文人妻 | 天天爽天天爽天天片a久久网| 欧美精品一本久久男人的天堂| 国内精品欧美久久精品| 一级a性色生活片久久无少妇一级婬片免费放 | 久久精品中文无码资源站| 一本久久知道综合久久| 久久久久久国产精品免费无码 | 亚洲午夜久久久| 久久99国产综合精品免费| 久久精品国产99久久丝袜| 久久亚洲AV成人无码国产| 精品无码人妻久久久久久| 日产精品久久久久久久| 久久久这里有精品中文字幕| 日韩乱码人妻无码中文字幕久久 | 91精品国产91久久久久久青草 | 奇米综合四色77777久久| 久久精品视频免费| 无码专区久久综合久中文字幕| 久久精品视屏| 久久综合九色综合97_久久久| 久久亚洲AV无码精品色午夜| 成人精品一区二区久久| 国产精品久久久久AV福利动漫| 91麻豆国产精品91久久久| 久久久久久毛片免费看| 国产精品伊人久久伊人电影| 国产一区二区三区久久精品| 99精品国产99久久久久久97| 成人综合久久精品色婷婷| 亚洲国产成人精品女人久久久 | 漂亮人妻被中出中文字幕久久| 精品国产青草久久久久福利| 久久香蕉综合色一综合色88| 国产美女久久精品香蕉69| 久久水蜜桃亚洲av无码精品麻豆 | 久久久久国色AV免费观看| 久久777国产线看观看精品|