• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            如何使用WINDOWS自帶的線程池

            Posted on 2009-02-24 20:57 S.l.e!ep.¢% 閱讀(1211) 評論(0)  編輯 收藏 引用 所屬分類: IOCP
            【kingzai】:
            Requirements
            Client:?Requires?Windows?XP?or?Windows?2000?Professional.
            Server:?Requires?Windows?Server?2003?or?Windows?2000?Server.
            Header:?Declared?in?Winbase.h;?include?Windows.h.
            Library:?Use?Kernel32.lib.
            you?must?add?this:
            #define?_WIN32_WINNT?0x0500
            before?include?windows.h

            【helldream2002】:
            windows核心編程里面有例子

            【waterbao】:
            沒明白怎么用,請詳細(xì)點(diǎn)

            【kingzai】:
            #define?_WIN32_WINNT????0x0500

            #include?<cstdlib>
            #include?<clocale>
            #include?<ctime>
            #include?<iostream>
            #include?<vector>
            #include?<algorithm>
            #include?<winsock2.h>
            #include?<mswsock.h>

            int?main(int?argc,char?**argv)
            {?
            ????if(argc==2)
            ????????DefPort=atoi(argv[1]);

            ????InitializeCriticalSection(&csProtection);
            ????SetUnhandledExceptionFilter(MyExceptionFilter);
            ????SetConsoleCtrlHandler(ShutdownHandler,TRUE);

            ????hIocp=CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,0);

            ????WSADATA?data={?0?};
            ????WSAStartup(0x0202,&data);

            ????hListen=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
            ????if(INVALID_SOCKET==hListen)
            ????{?
            ????????ShutdownHandler(0);
            ????}
            ????
            ????SOCKADDR_IN?addr={?0?};
            ????addr.sin_family=AF_INET;
            ????addr.sin_port=htons(DefPort);
            ????
            ????if(bind(hListen,reinterpret_cast<PSOCKADDR>(&addr),
            ????????sizeof(addr))==SOCKET_ERROR)
            ????{?
            ????????ShutdownHandler(0);
            ????}
            ????
            ????if(listen(hListen,256)==SOCKET_ERROR)
            ????????ShutdownHandler(0);

            ????SYSTEM_INFO?si={?0?};
            ????GetSystemInfo(&si);
            ????si.dwNumberOfProcessors<<=1;

            ????for(int?i=0;i<si.dwNumberOfProcessors;i++)
            ????{?
            ????????
            ????????QueueUserWorkItem(ThreadProc,hIocp,WT_EXECUTELONGFUNCTION);
            ????}
            ....
            }

            【zwzzwz】:
            you?must?add?this:
            #define?_WIN32_WINNT?0x0500
            before?include?windows.h


            【waterbao】:
            zwzzwz()?(?)?信譽(yù),謝謝你的回答,但是你說的include?windows.h,不用手動包含這個文件呀,到底在什么位子加這個#define?_WIN32_WINNT?0x0500,詳細(xì)點(diǎn)

            【kingzai】:
            #define?_WIN32_WINNT????0x0500

            #include?<cstdlib>
            #include?<clocale>
            #include?<ctime>
            #include?<iostream>
            #include?<vector>
            #include?<algorithm>
            #include?<winsock2.h>
            #include?<mswsock.h>


            【waterbao】:
            我的程序不是main()的,是MFC的,所以不知道加在那里,我把#define?_WIN32_WINNT????0x0500加在使用QueueUserWorkItem(ThreadProc,hIocp,WT_EXECUTELONGFUNCTION);
            這個函數(shù)的地方,編譯說QueueUserWorkItem和WT_EXECUTELONGFUNCTION這個不認(rèn)

            【zwzzwz】:
            1、在VC6下的windows.h中是沒有QueueUserWorkItem的聲明的。
            2、VC2003的windows.h中有這個函數(shù)的定義。
            你可以升級一下SDK或用VS2003

            如果還不行就在stdafx.h文件的開頭加入:
            #ifndef?WINVER
            #define?WINVER?0x0400
            #endif

            #ifndef?_WIN32_WINNT
            #define?_WIN32_WINNT?0x0500
            #endi


            #ifndef?_WIN32_WINDOWS
            #define?_WIN32_WINDOWS?0x0410
            #endif



            【jyl168】:
            mark
            久久强奷乱码老熟女网站 | 亚州日韩精品专区久久久| 人妻无码αv中文字幕久久| 亚洲一级Av无码毛片久久精品| 久久精品国产亚洲一区二区| 久久99精品久久久久久久不卡| 久久精品人妻中文系列| 精品久久久久久无码不卡| yy6080久久| 久久久久人妻一区二区三区 | 久久亚洲国产精品123区| 久久精品国产色蜜蜜麻豆 | 久久精品国产国产精品四凭| 很黄很污的网站久久mimi色| 久久国产综合精品五月天| 久久99精品国产麻豆不卡| 久久人妻少妇嫩草AV无码蜜桃| 久久精品国产亚洲5555| 欧美激情精品久久久久久久| 少妇被又大又粗又爽毛片久久黑人 | 久久久久高潮毛片免费全部播放| 人妻无码久久一区二区三区免费| 久久99精品久久久久久动态图| 久久99国产精品久久99果冻传媒| 久久综合丁香激情久久| 久久精品国产亚洲Aⅴ香蕉| 国产精品久久新婚兰兰| 久久精品国产亚洲av麻豆小说| 久久精品成人免费网站| 久久午夜福利电影| 久久棈精品久久久久久噜噜| 国产成人久久激情91| 精品久久久久国产免费| 国产成人精品综合久久久| 国产精品久久国产精品99盘| 久久免费香蕉视频| 久久精品国产亚洲av高清漫画 | 一本大道久久东京热无码AV| 日本久久久久亚洲中字幕| 国产精品久久久久久久午夜片| 欧美性猛交xxxx免费看久久久|