锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久这里有精品中文字幕,久久精品国产精品亚洲毛片,国产精品gz久久久http://m.shnenglu.com/lf426/category/6572.htmlGame Design Using C++ and SDLzh-cnSun, 06 Jun 2010 14:15:51 GMTSun, 06 Jun 2010 14:15:51 GMT60socket 緙栫▼鍏ラ棬鏁欑▼錛堜笁錛塗CP鍘熺悊錛?銆乻ocket寮傚父淇℃伅http://m.shnenglu.com/lf426/archive/2010/06/06/117284.htmllf426lf426Sun, 06 Jun 2010 13:07:00 GMThttp://m.shnenglu.com/lf426/archive/2010/06/06/117284.htmlhttp://m.shnenglu.com/lf426/comments/117284.htmlhttp://m.shnenglu.com/lf426/archive/2010/06/06/117284.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/117284.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/117284.html鍥犱負(fù)socket鏄睘浜庣郴緇熺殑錛屾墍浠ヤ笉鍚岀殑緋葷粺瀵逛簬socket鏈夌潃澶у悓灝忓紓鐨勮В閲婏紝鍑洪敊鎻忚堪涔熶笉灝界浉鍚屻傚湪Linux涓紝socket鐨勫紓甯鎬俊鎭彲浠ラ氳繃errno鑾峰緱錛坕nt綾誨瀷錛夛紝鐒跺悗鍙互閫氳繃鍑芥暟strerror()灝唅nt杞崲鎴愬瓧絎︿覆鎻忚堪錛涗篃鍙互閫氳繃鍑芥暟perror()鐩存帴鑾峰緱鍏舵弿榪般?br>瑕佷嬌鐢╡rrno闇瑕佸寘鍚ご鏂囦歡<errno.h>銆傛垜寤鴻浣跨敤errno鑾峰緱int綾葷殑閿欒淇℃伅鐨勪竴涓噸瑕佸師鍥犲湪浜庯紝socket鐨勫紓甯鎬笉涓瀹氬氨蹇呯劧瀵艱嚧紼嬪簭緇堟銆侭jarne Stroustrup鍦ㄤ粙緇岰++寮傚父鏈哄埗鐨勬椂鍊欏C椋庢牸鐨勫紓甯告満鍒舵湁鐫榪欐牱鐨勬弿榪幫細(xì)錛圕++瀵逛簬寮傚父錛夌殑榛樿鍝嶅簲鏂瑰紡鏄粓姝㈢▼搴忋備紶緇熺殑鍙嶅簲錛堝浜庡彂鐢熷紓甯哥殑鏃跺欙級(jí)鍒欐槸瑁呯硦娑傦紝鎺ョ潃鍋氫笅鍘伙紝浠ユ湡寰楀埌鏈濂界殑緇撴灉錛堛奀++紼嬪簭璁捐璇█銆嬬14绔?寮傚父澶勭悊錛夈備笉榪囦互鎴戠洰鍓嶇殑姘村鉤鐪嬫潵錛岀粓姝㈡鍦ㄨ繘琛岀殑紼嬪簭鐒跺悗鍐嶉氳繃寮傚父鏈哄埗閲嶆柊鍚姩涓涓柊鐨勬祦紼嬶紝鍏朵唬浠瘋繙榪滃ぇ浜?#8220;瑁呯硦娑?#8221;鐨勮紼嬪簭緇х畫榪愯涓嬪幓錛屽彧瑕侀敊璇笉鏄嚧鍛界殑錛岄氳繃綆鍗曠殑鍒ゆ柇鍜屽鐞嗘垨璁告晥鏋滄洿浣熾?br>渚嬪錛宻ocket涓氨鏈変竴涓緢鏈変唬琛ㄦх殑鎯呭喌錛屽湪TCP榪炴帴涓紝濡傛灉涓鏂規(guī)剰澶栭鍑衡斺斾篃灝辨槸璇存病鏈夐氳繃TCP閫鍑烘祦紼嬮鍑猴紝姣斿娌℃湁榪愯瀹岀▼搴忓叧闂帀socket鑰岀洿鎺鎺夋垨鑰匔trl+c浜?jiǎn)銆俿ocket寰寰浼?xì)鍥犱负recv()榪斿洖鍊煎皬浜?鑰屾姏鍑轟竴涓紓甯搞傛甯告柇寮榪炴帴鐨勬椂鍊欙紝recv()浼?xì)閫氳繃榪斿洖0琛ㄧず榪炴帴宸茬粡鏂紑錛屼絾鏄ぇ澶氭暟鏃跺欙紝鎴戜滑騫朵笉甯屾湜鍥犱負(fù)寮傚父鐨勬柇寮灝卞鑷村彟澶栦竴绔殑紼嬪簭緇堟錛堟兂璞′竴涓嬪鏋滀綘鍏蟲帀QQ鑵捐鐨勬湇鍔″櫒紼嬪簭灝辯粓姝㈡槸浠涔堟蹇?#8230;…錛夛紝鎵浠ユ垜浠繀欏誨鐞嗚繖縐嶆儏鍐點(diǎn)?br>鍦↙inux涓紝榪滅▼榪炴帴寮傚父鏂紑錛堣閲嶇疆錛夌殑errno浠g爜鏄?04錛岀被浼肩殑錛屾垜浠簲璇ヤ繚璇佸嚭鐜拌繖縐嶅紓甯哥殑鏃跺欑▼搴忓彲浠ョ戶緇繍琛屻?br>
//Filename: SockClass.hpp

#ifndef SOCK_CLASS_HPP
#define SOCK_CLASS_HPP

#include 
<unistd.h>
#include 
<iostream>
#include 
<sys/socket.h>
#include 
<arpa/inet.h>
#include 
<errno.h>

namespace sockClass
{
void error_info(const char* s);
}
浠ヤ笂鏄ご鏂囦歡涓殑澹版槑錛屼笅闈㈡槸鍑芥暟錛屾垜浠繖閲屼粎浠呮紨紺哄鐞嗕簡(jiǎn)104閿欒銆?br>
namespace sockClass
{
void error_info(const char* s)
{
    
int err_info = errno;
    std::cerr 
<< strerror(err_info) << ": errno: " << err_info << std::endl;
    
if (err_info == 104){
        
return;
    }
    exit(
1);
}
}
鍦╳indows涓紝閿欒浠g爜鐢盬SAGetLastError()鑾峰緱錛岃屾棤闇璁劇疆errno銆?br>
//Filename: SockClass.hpp

#ifndef SOCK_CLASS_HPP
#define SOCK_CLASS_HPP

#include 
<iostream>
#include 
<winsock2.h>

namespace sockClass
{
void error_info(const char* s);
}
WinSock鐨勯敊璇唬鐮佽窡Linux涓殑涓嶄竴鏍鳳紝鍚屾牱鐨勫紓甯革紝W(xué)inSock鐨勯敊璇唬鐮佹槸10054銆?br>騫朵笖錛岀敱浜庢病鏈塭rrno涔熷氨鏃犱粠璋冪敤strerror()錛屾垜浠渶濂借嚜宸卞啓鍑?guó)櫙l嗙殑寮傚父淇℃伅銆?br>WinSock鐨勮緇嗕唬鐮佷俊鎭湪榪欓噷錛?br>http://msdn.microsoft.com/en-us/library/ms740668(v=VS.85).aspx
win32涓嬬殑婕旂ず浠g爜濡備笅錛?br>
namespace sockClass
{
void error_info(const char* s)
{
    
int winsock_err = WSAGetLastError();
    perror(s);
    std::cerr 
<< "WinSock Error: " << winsock_err << std::endl;
    
if (winsock_err == WSAECONNRESET) {
        std::cerr 
<< "Connection reset by peer." << std::endl;
        
return;
    }
    exit(
1);
}
}


lf426 2010-06-06 21:07 鍙戣〃璇勮
]]>
鐢ㄥ璞$殑鎴愬憳鍑芥暟寮曞嚭綰跨▼錛岃繕鏄湪綰跨▼涓垱寤哄璞★紵http://m.shnenglu.com/lf426/archive/2010/06/05/117242.htmllf426lf426Sat, 05 Jun 2010 13:06:00 GMThttp://m.shnenglu.com/lf426/archive/2010/06/05/117242.htmlhttp://m.shnenglu.com/lf426/comments/117242.htmlhttp://m.shnenglu.com/lf426/archive/2010/06/05/117242.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/117242.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/117242.html涔嬫墍浠ユ彁鍑篢estClass2榪欑綾伙紝鏄洜涓哄湪瀹為檯緙栫▼涓垜浠細(xì)閬囧埌榪欑鎯呭喌錛氭垜浠笉鍙鐭ヨ繖涓被浣曟椂鍒涘緩浠ュ強(qiáng)鍒涘緩澶氬皯錛涜繖涓被鐨勫璞℃槸涓涓柊綰跨▼鐨勫弬鏁般傛瘮濡傦紝鍦╯okcet涓殑TCP server绔氨浼?xì)鏈墭q欑鎯呭喌錛氬鏋滄瘡涓涓柊榪炴帴鐨刢lient閮界敤鍒涘緩涓涓柊鐨勭嚎紼嬪幓澶勭悊錛屾垜浠笉鍙鐭ュ湪浠涔堟椂鍊欎細(xì)鏈夊灝戝鎴風(fēng)榪炶繃鏉ャ?br>鎴戜滑鍏堣瀵熸病鏈夊綰跨▼鐨勬椂鍊欏璞$殑鐢熷懡鍛ㄦ湡錛?br>
#include <iostream>
#include 
"windows.h"

class TestClass1{
private:
    
int x;
public:
    
explicit TestClass1(int to_x):x(to_x)
    {}
    
~TestClass1()
    {
        std::cerr 
<< "destruction: 1." << std::endl;
    }
    
void show() const
    {
        std::cerr 
<< x << std::endl;
    }
};

class TestClass2{
private:
    
int* pX;
public:
    
explicit TestClass2(int to_x)
    {
        pX 
= new int;
        
*pX = to_x;
    }
    
~TestClass2()
    {
        delete pX;
        std::cerr 
<< "destruction: 2."  << std::endl;
    }
    
const int& value() const
    {
        
return *pX;
    }
};

DWORD WINAPI thread_func(LPVOID pN)
{
    Sleep(
200);
    TestClass1 test((
*((TestClass2*)pN)).value());
    test.show();
    
return 0;
}

int main(int argc, char* argv[])
{
    
for (int i = 0; i < 3++i) {
        TestClass2 n(
5);
        
        thread_func((LPVOID)
&n);
        std::cerr 
<< "loop: " << i+1 << std::endl;
    }

    Sleep(
2000);

    std::cout 
<< "main() ok." << std::endl;

    
return 0;
}
榪欐槸鏍囧噯鐨凜++妯″紡錛屽璞$殑鐢熷懡鍛ㄦ湡鏄彲浠ラ瑙佺殑錛?br>
5
destruction: 
1.
loop: 
1
destruction: 
2.
5
destruction: 
1.
loop: 
2
destruction: 
2.
5
destruction: 
1.
loop: 
3
destruction: 
2.
main() ok.
璇鋒寜浠繪剰閿戶緇? . .
濡傛灉鎴戜滑鏀規(guī)垚綰跨▼璋冪敤錛?br>
#include <iostream>
#include 
"windows.h"

class TestClass1{
private:
    
int x;
public:
    
explicit TestClass1(int to_x):x(to_x)
    {}
    
~TestClass1()
    {
        std::cerr 
<< "destruction: 1." << std::endl;
    }
    
void show() const
    {
        std::cerr 
<< x << std::endl;
    }
};

class TestClass2{
private:
    
int* pX;
public:
    
explicit TestClass2(int to_x)
    {
        pX 
= new int;
        
*pX = to_x;
    }
    
~TestClass2()
    {
        delete pX;
        std::cerr 
<< "destruction: 2."  << std::endl;
    }
    
const int& value() const
    {
        
return *pX;
    }
};

DWORD WINAPI thread_func(LPVOID pN)
{
    Sleep(
200);
    TestClass1 test((
*((TestClass2*)pN)).value());
    test.show();
    
return 0;
}

int main(int argc, char* argv[])
{
    
for (int i = 0; i < 3++i) {
        TestClass2 n(
5);
        
        HANDLE hThrd;
        DWORD thrdId;
        hThrd 
= CreateThread(    NULL,
                                
0,
                                thread_func,
                                (LPVOID)
&n,
                                
0,
                                
&thrdId);
        
        std::cerr 
<< "loop: " << i+1 << std::endl;
    }

    Sleep(
2000);

    std::cout 
<< "main() ok." << std::endl;

    
return 0;
}
鍙互鐪嬪埌鍑芥暟榪斿洖浜?jiǎn)閿欒鐨勫鹼紙鑷充簬涓轟粈涔堟瘡嬈¢兘鏄?6鎴戣繕涓嶆竻妤氾紝浣嗘槸鑷沖皯涓嶆槸姝g‘鐨勬暟瀛?錛夛紝榪欐槸鍥犱負(fù)鍦ㄧ嚎紼嬭皟鐢═estClass2鐨勫璞′箣鍓嶅凡緇忚鏋愭瀯鐨勭紭鏁呫?br>
loop: 1
destruction: 
2.
loop: 
2
destruction: 
2.
loop: 
3
destruction: 
2.
36
destruction: 
1.
36
destruction: 
1.
36
destruction: 
1.
main() ok.
璇鋒寜浠繪剰閿戶緇? . .
鎵浠ワ紝濡傛灉鎴戜滑璁炬兂鏋勯犱竴涓被錛岃繖涓被鐨勫璞″彲浠ヨ皟鐢ㄥ寘鍚玹his鐨勭嚎紼嬶紝閭d箞榪欎釜瀵硅薄涓瀹氫笉鑳芥槸灞閮ㄥ彉閲忥紝鎴栬呰錛屾垜浠繀欏誨湪寰幆鐨剓}瀵逛箣鍓嶅厛鎶婅繖浜涘璞℃瀯閫犲嚭鏉ャ傝繖涓庢垜浠殑闇姹備笉絎﹀悎鈥斺旀垜浠茍涓嶇煡閬撻渶瑕佸灝戝璞′互鍙?qiáng)濡備綍鏋勯狅紙姣斿鏋勯燭CP鐨勯氳socket闇瑕乤ccept()鎺ュ彈瀹㈡埛绔殑淇℃伅錛夛紝鍦ㄨ繖縐嶆儏鍐典笅錛屾垜浠彧鑳藉湪綰跨▼涓幓鏋勯犲璞★紝榪欐牱鐨勫璞$敓鍛藉懆鏈熻窡綰跨▼鍑芥暟涓鏍楓?br>鎴栬呰錛屽鏋滄垜浠笇鏈涚敤綾繪潵灝佽綰跨▼錛岄偅涔堣繖浜涘彲浠ヨ皟鐢ㄧ嚎紼嬬殑瀵硅薄蹇呴』鏄叏灞鐨勩傜浉鍏沖唴瀹硅鍙傝冩湰浜哄墠闈㈢殑鏁欑▼“鍒濊瘯澶氱嚎紼?#8221;絳夈?

lf426 2010-06-05 21:06 鍙戣〃璇勮
]]>
鍦ㄥ綰跨▼涓姏鍑虹殑寮傚父鍑洪敊錛?/title><link>http://m.shnenglu.com/lf426/archive/2010/06/05/117241.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Sat, 05 Jun 2010 12:16:00 GMT</pubDate><guid>http://m.shnenglu.com/lf426/archive/2010/06/05/117241.html</guid><wfw:comment>http://m.shnenglu.com/lf426/comments/117241.html</wfw:comment><comments>http://m.shnenglu.com/lf426/archive/2010/06/05/117241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/lf426/comments/commentRss/117241.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lf426/services/trackbacks/117241.html</trackback:ping><description><![CDATA[浠ヤ笅浠in32騫沖彴涓轟緥銆傛垜浠厛鐪嬩竴涓潪澶氱嚎紼嬬殑紼嬪簭錛?br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><br>DWORD WINAPI thread_func(LPVOID pN)<br>{<br>    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)pN); </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i) {<br>        std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>    }<br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ok.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">thread_func() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> argv[])<br>{<br>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> n </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;<br><br>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{<br>    thread_func((LPVOID)</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">n);<br>    Sleep(</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">);<br>    }<br>    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> s) {<br>        std::cerr </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> s </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>        exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>    }<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">main() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br><br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}</span></div> 鍙互鐪嬪埌錛屽嚱鏁皌hread_func()鍙互姝g‘鐨勬姏鍑哄紓甯稿茍琚玬ain()鐨刢atch鎹曟崏銆備絾鏄紝濡傛灉鐢ㄤ竴涓柊綰跨▼鏉ヨ繍琛宼hread_func()浼?xì)鍑虹庮C粈涔堟儏鍐靛憿錛?br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><br>DWORD WINAPI thread_func(LPVOID pN)<br>{<br>    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)pN); </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i) {<br>        std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>    }<br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ok.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">thread_func() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> argv[])<br>{<br>    HANDLE hThrd;<br>    DWORD thrdId;<br>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> n </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;<br><br>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{<br>    hThrd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CreateThread(    NULL,<br>                            </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br>                            thread_func,<br>                            (LPVOID)</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">n,<br>                            </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br>                            </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">thrdId);<br>    Sleep(</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">);<br>    }<br>    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> s) {<br>        std::cerr </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> s </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>        exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>    }<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">main() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br><br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}</span></div> 寰堜笉騫革紝榪欎釜紼嬪簭緙栬瘧鐨勬椂鍊欐槸鍙互閫氳繃鐨勶紝浣嗘槸榪愯鏃跺嚭閿欙細(xì)<br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">1</span><span style="COLOR: #000000">       </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">       </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">       </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">       </span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br><br>This application has requested the Runtime to terminate it </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"> an unusual way.<br>Please contact the application</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s support team for more information.</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">璇鋒寜浠繪剰閿戶緇? . .</span></div> 鑰屼笖鍚屾椂浼?xì)鏈変竴涓繍琛屾椂閿欒鐨勬彁紺恒備簨瀹炰笂錛岃繖涓敊璇彁紺烘剰鍛崇潃紼嬪簭鍦ㄦ病鏈夊彂鐜皌ry{}鐨勬椂鍊欑湅鍒頒簡(jiǎn)throw銆?br>閫氳繃璇曢獙錛屾垜鍙戠幇緋葷粺錛堣繖閲屾槸win32錛変笉鑳藉皢CreateThread()鎵浜х敓鐨勭嚎紼嬪綊緇撳埌try{}涓傛洿鍔犱弗閲嶇殑鎯呭喌鏄紝鍗充嬌鐢ㄤ竴涓嚱鏁板泭鎷簡(jiǎn)鏁翠釜紼嬪簭錛岀劧鍚巘ry榪欎釜鍑芥暟錛屽叾浠栫嚎紼嬩緷鐒惰劚紱諱簡(jiǎn)榪欎釜try銆?br>鎵浠ワ紝涓涓В鍐蟲柟娉曟槸錛屽嚒鏄亣鍒版柊鐨勭嚎紼嬶紝蹇呴』鍦ㄦ柊綰跨▼涓噸鏂板啓寮傚父澶勭悊銆備笉鐒?dòng)灱尀濡俫oogle浠g爜鏍囧噯閲屾墍璇寸殑閭f牱錛屼笉浣跨敤C++鐨勫紓甯告満鍒躲傛瘯绔烠++娌℃湁瀹氫箟澶氱嚎紼嬬殑鏍囧噯錛屾墍浠ヤ篃灝辨棤浠庤璧峰綰跨▼涓紓甯稿鐞嗙殑鏍囧噯銆?br>鏈鍚庨檮涓婂湪鏂扮嚎紼嬪啓寮傚父澶勭悊鐨勫弬鑰冿細(xì)<br> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><br>DWORD WINAPI thread_func(LPVOID pN)<br>{<br>    </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000">{<br>    </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)pN); </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i) {<br>        std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\t</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>    }<br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ok.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>    }<br>    </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> s) {<br>        std::cerr </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> s </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>        exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>    }<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">thread_func() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> argc, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> argv[])<br>{<br>    HANDLE hThrd;<br>    DWORD thrdId;<br>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> n </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">;<br><br>    hThrd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CreateThread(    NULL,<br>                            </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br>                            thread_func,<br>                            (LPVOID)</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">n,<br>                            </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br>                            </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">thrdId);<br>    Sleep(</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">);<br><br>    std::cout </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">main() done.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000"> std::endl;<br><br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}</span></div> <img src ="http://m.shnenglu.com/lf426/aggbug/117241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lf426/" target="_blank">lf426</a> 2010-06-05 20:16 <a href="http://m.shnenglu.com/lf426/archive/2010/06/05/117241.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>socket 緙栫▼鍏ラ棬鏁欑▼錛堜簩錛墂in32涓嬩嬌鐢╯ocket錛歐inSockhttp://m.shnenglu.com/lf426/archive/2010/06/03/117074.htmllf426lf426Thu, 03 Jun 2010 02:37:00 GMThttp://m.shnenglu.com/lf426/archive/2010/06/03/117074.htmlhttp://m.shnenglu.com/lf426/comments/117074.htmlhttp://m.shnenglu.com/lf426/archive/2010/06/03/117074.html#Feedback0http://m.shnenglu.com/lf426/comments/commentRss/117074.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/117074.html鎴戠殑VC鐜渚濈劧鏄?008 Express錛屽湪鍐欒繖綃囨暀紼嬬殑鏃跺欙紝寰蔣宸茬粡鍙戝竷浜?jiǎn)VC 2010錛岀洰鍓嶅湪寰蔣鐨勫畼鏂逛富欏碉紝鎻愪緵浜?jiǎn)VC 2010鐨勪笅杞斤紝鍚屾椂淇濈暀鐫VC 2008鐨勪笅杞姐?br>鎴戜滑鍦╒C涓緩绔嬩竴涓帶鍒跺彴鐨勭┖欏圭洰錛?br>


鎴戜滑鐫鎵嬫瀯寤鴻嚜宸辯殑絎竴涓獁insock紼嬪簭銆?br>棣栧厛win32涓嬩笌Linux涓嬬殑socket API闇瑕佸寘鍚笉鍚岀殑澶存枃浠躲?br>鍦↙inux涓嬫槸榪欎簺錛?br>
#include <unistd.h>
#include 
<sys/socket.h>
#include 
<arpa/inet.h>
win32涓嬬殑winsock鏈夊涓増鏈紝鎴戞墍鎵懼埌鐨勮祫鏂欎腑錛岃佺殑鐗堟湰鏄細(xì)
#include <winsock.h>
涓庝箣瀵瑰簲鐨勯渶瑕佺殑閾炬帴搴撲負(fù)錛?br>


榪欏彲鑳藉彲浠ュ吋瀹歸潪甯稿彜鑰佺殑鐗堟湰涓殑winsock錛屾瘮濡倃in98錛岃屽井杞畼鏂規(guī)墍鎺ㄨ崘鐨勬槸錛?br>
#include <winsock2.h>
閾炬帴搴撴槸錛歸s2_32.lib錛岃繖鏍峰氨鍙互浣跨敤楂樼増鏈殑winsock銆?br>閭d箞錛屼粈涔堟槸winsock鐨勭増鏈紵榪欏氨娑夊強(qiáng)鍒皐insock鐨勫垵濮嬪寲鍑芥暟WSAStartup錛?br>http://msdn.microsoft.com/en-us/library/ms742213(v=VS.85).aspx
涓婇潰鏄井杞殑瀹樻柟璇存槑錛屾垜榪欓噷鏋勫緩涓涓畝鍗曠殑綾伙紝甯屾湜姣忔浣跨敤鐨勬椂鍊欏紩鍏ヤ竴涓被瀵硅薄灝卞彲浠ヤ簡(jiǎn)銆?br>
class WinsockAPI{
private:
    WSADATA wsaData;
public:
    WinsockAPI(
int low_byte = 2int high_byte = 2);
    
~WinsockAPI();
    
void showVersion() const;
};
WSADATA鏄褰曠潃winsock淇℃伅鐨勭粨鏋勩?br>
//class WinsockAPI

WinsockAPI::WinsockAPI(
int low_byte, int high_byte)
{
    
const WORD wVersionRequested = MAKEWORD(low_byte, high_byte);
    
int wsa_startup_err = WSAStartup(wVersionRequested, &wsaData);
    
if (wsa_startup_err != 0) {
        std::cerr 
<< "WSAStartup() failed." << std::endl;
        
throw wsa_startup_err;
    }
}

WinsockAPI::
~WinsockAPI()
{
    WSACleanup();
}

void WinsockAPI::showVersion() const
{
    std::cout    
<< "The version of Winsock.dll is " 
                
<< int(LOBYTE(wsaData.wVersion)) 
                
<< "." 
                
<< int(HIBYTE(wsaData.wVersion)) 
                
<< "." 
                
<< std::endl;
    
return;
}
棣栧厛錛屽畯MAKEWORD()灝嗕袱涓猧nt杞崲涓簑insock褰㈠紡鐨勭増鏈彿錛屾垜榪欓噷榛樿鏄槸2.2錛屽氨鍙渶瑕丮AKEWORD(2, 2)錛屽鏋滄槸鑰佺増鏈殑錛屾渶浣庡簲璇ユ槸1.0銆俉SAStartup()灝唚insock鐨勫垵濮嬪寲淇℃伅鍐欏叆涓涓猈SADATA緇撴瀯錛堟垜浠繖閲岀殑wsaData錛夛紝濡傛灉鎴愬姛榪斿洖0錛屽け璐ュ皢榪斿洖涓涓猧nt鐨勯敊璇唬鐮併傝繖涓敊璇唬鐮佺洿鎺ヨ〃紺轟簡(jiǎn)閿欒淇℃伅錛屽井杞畼鏂瑰緩璁笉浣跨敤winsock鐨勯氱敤寮傚父淇℃伅鑾峰彇鍑芥暟WSAGetLastError()鑾峰彇WSAStartup()鐨勯敊璇俊鎭紝榪欏彲鑳芥槸鍥犱負(fù)濡傛灉WSAStartup()澶辮觸錛岄偅涔坵insock鐨勯敊璇俊鎭笉涓瀹氳兘澶熸紜殑鏋勫緩鍑烘潵鐨勭紭鏁呫?br>鏈鍚庯紝winsock緇撴潫鍚庣敤WSACleanup()娓呯悊銆?br>鍥犱負(fù)socket鏈韓鐨勫鏉傛э紝寮傚父淇℃伅鎻愮ず闈炲父閲嶈銆俉SAGetLastError()鐨勫畼鏂硅鏄庡涓嬶細(xì)
http://msdn.microsoft.com/en-us/library/ms741580(VS.85).aspx
閿欒浠g爜鎵鍙嶉鐨勪俊鎭煡璇㈠湪榪欓噷錛?br>http://msdn.microsoft.com/en-us/library/ms740668(v=VS.85).aspx
鏈鍚庯紝闇瑕佹敞鎰忕殑闂鏄紝鍥犱負(fù)socket鏄瀯寤哄湪UNIX緋葷粺涓嬬殑錛圔SD socket鏄綋浠婃墍鏈塻ocket鐨勫熀紜錛夛紝鎵浠ocket寰堝ソ鐨勫埄鐢ㄤ簡(jiǎn)UNIX浣撶郴“涓鍒囬兘鏄枃浠?#8221;鐨勬ц川錛屾瘡涓猻ocket鏈韓涔熷氨鏄竴涓猆NIX鏂囦歡鎻忚堪絎︼紝鍥犳錛孡inux涓嬬殑socket鏄敤鍏抽棴鏂囦歡鐨勫嚱鏁癱lose()鍏抽棴鐨勩備絾鏄痺in32涓嬫病榪欎釜鎬ц川錛屾墍浠insock鏄彟澶栦竴縐嶆娊璞★紝浣嗘槸濂藉湪鍚屾牱鐢╥nt浣滀負(fù)鎻忚堪絎︼紝鍏抽棴闇瑕佷笓闂ㄤ負(fù)winsock瀹氬仛鐨勫嚱鏁癱losesocket()銆?br>涓嬬瘒鏂囩珷閲嶅啓浜?jiǎn)TCP Server鐨勪唬鐮侊紙綾葷殑鎶借薄鍜屾瀯閫犱篃閲嶆柊鍐欎簡(jiǎn)錛屽皢鍦ㄤ笅涓绔犺В閲婏級(jí)錛屼綔涓簑insock浣跨敤鐨勬紨紺恒?

lf426 2010-06-03 10:37 鍙戣〃璇勮
]]>
Microsoft Visual C++ 2008 鍙戝竷紼嬪簭鐨勯儴緗查棶棰?/title><link>http://m.shnenglu.com/lf426/archive/2008/04/12/46885.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Fri, 11 Apr 2008 17:51:00 GMT</pubDate><guid>http://m.shnenglu.com/lf426/archive/2008/04/12/46885.html</guid><wfw:comment>http://m.shnenglu.com/lf426/comments/46885.html</wfw:comment><comments>http://m.shnenglu.com/lf426/archive/2008/04/12/46885.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://m.shnenglu.com/lf426/comments/commentRss/46885.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lf426/services/trackbacks/46885.html</trackback:ping><description><![CDATA[        VC2005鍜孷C2008緙栬瘧鍑烘潵鐨勭▼搴忔斁鍒板埆浜虹殑鐢?shù)鑴戜笂湄?fù)浠涔堟湁鍙兘鏃犳硶榪愯鍛紵<br>        榪欎釜闂鏃犳暟浜哄湪闂紝浣嗘槸寰堥仐鎲撅紝娌℃湁浜虹粰鍑哄畬鏁寸殑瑙i噴鍜屽畬緹庣殑瑙e喅鏂規(guī)銆傚叾瀹炴垜涔熷彧鏈変竴鍙扮數(shù)鑴戯紝鑰屼笖瑁呬簡(jiǎn)VC浜?jiǎn)锛寴q欎釜闂蹇呴』瑕佸彴娌℃湁瑁呰繖綾昏蔣浠剁殑鐢?shù)鑴戞墠瀹规槗鍘诲垎鏋愩傛劅璋㈤偅浜涗負(fù)浜?jiǎn)娴嬭瘯鎴憺畯绋嬪簭鐨勬湅鍙嬪Q屾槸浣犱滑涓嬈℃鍦ㄥ姝ゆ伓鍔g殑緗戠粶閫熷害涓嬫敹鍙栨垜涓嬈℃淇敼鐨刣ll鍖呭拰閮ㄧ講鏂囦歡錛屾墠璁╄繖涓棶棰樼殑瀹岀編瑙e喅鏂規(guī)嫻嚭姘撮潰銆傝繖閲屽氨鎶婃垜鐨勭粡楠岀粰澶у鍒嗕韓鍚с?br><br>1錛歁icrosoft Visual C++ 2008 Express Edition鍙互鍙戝竷杞歡鍚楋紵<br><br>        鑳斤紒<br>        寰堝浜鴻錛屽洜涓烘槸Express鐗堬紝涓嶆槸Studio錛屾墍浠ュ彧鏄敤鏉ョ粌涔?fàn)璇a鐨勶紝涓嶈兘鍙戝竷杞歡鈥斺旈敊錛?br>        闄や簡(jiǎn)娌℃湁MFC鍜孉TL錛屽熀鏈笂璺?.net 鐗堟湰鏄竴鏍風(fēng)殑銆傚彂甯冨嚭鏉ョ殑錛屾槸瀹屾暣鐨勫彲鎵ц鏂囦歡銆?br><br>2錛歏C 2008 (2005) 鍙戝竷鍑烘潵鐨勭▼搴忓繀欏婚檮甯︿笂浠栦滑鐗瑰畾鐨刣ll鏂囦歡鍚楋紵<br><br>        涓嶄竴瀹氥?br>        濡傛灉鐩爣緋葷粺鏄釜緇忓父鍗囩駭鐨勭郴緇燂紝寰蔣宸茬粡涓哄叾鎵撲笂浜?jiǎn)鎵闇瑕佺殑dll鏂囦歡琛ヤ竵浜?jiǎn)锛屼笉闇瑕佸湪杞歡鍖呴噷闈㈤檮鍔犵壒瀹氱殑dll鏂囦歡銆傜壒鍒湪Vista緋葷粺涓紝浣犳洿鏄笉闇瑕乂C8鍜孷C9鐨刣ll鏂囦歡銆備絾鏄湪涓浜涜佺増鏈殑緋葷粺涓紝榪欎簺鏂囦歡灝辨槸蹇呴』鐨勩?br><br>3錛歏C2008鍜孷C2005鐗瑰畾鐨刣ll鏂囦歡鏄摢浜涳紵<br><br>VC8: msvcm80.dll, msvcp80.dll, msvcr80.dll<br>VC9: msvcm90.dll, msvcp90.dll, msvcr90.dll<br><br>4錛氬浣曢儴緗叉枃浠訛紵<br><br>棣栧厛錛岃閫夋嫨release鐗堟湰錛涘湪鐢熸垚鍙墽琛屾枃浠訛紙exe鏂囦歡錛夌殑鏃跺欙紝浼?xì)寰楀埌鐩稿簲鐨勯儴缰v鏂囦歡錛坢anifest鏂囦歡錛夈?br>姣斿錛屽緱鍒癮.exe鏂囦歡錛屽氨浼?xì)鍚屾椂鐢熸垚a.exe.intermediate.manifest鏂囦歡銆傝灝嗚繖2涓枃浠舵斁鍦ㄥ悓涓鏂囦歡澶逛笅銆?br>鐒跺悗錛屼綘闇瑕乂C8鍜孷C9鐨勯儴緗叉枃浠訛細(xì)Microsoft.VC80.CRT.manifest鍜孧icrosoft.VC90.CRT.manifest銆?br>璇峰埌浣犵殑VC瀹夎鐩綍涓嬪鎵撅紝姣斿錛?br>C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT<br>鎴戣繖閲屼篃鎶?涓儴緗叉枃浠剁洿鎺ヨ創(chuàng)鍑烘潵錛屾病瑁呯殑鐩存帴鐢ㄥ氨鏄簡(jiǎn)錛?br>Microsoft.VC80.CRT.manifest<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="UTF-8" standalone="yes"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assembly </span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">="urn:schemas-microsoft-com:asm.v1"</span><span style="COLOR: #ff0000"> manifestVersion</span><span style="COLOR: #0000ff">="1.0"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">noInheritable</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">noInheritable</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assemblyIdentity </span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="win32"</span><span style="COLOR: #ff0000"> name</span><span style="COLOR: #0000ff">="Microsoft.VC80.CRT"</span><span style="COLOR: #ff0000"> version</span><span style="COLOR: #0000ff">="8.0.50727.762"</span><span style="COLOR: #ff0000"> processorArchitecture</span><span style="COLOR: #0000ff">="x86"</span><span style="COLOR: #ff0000"> publicKeyToken</span><span style="COLOR: #0000ff">="1fc8b3b9a1e18e3b"</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">assemblyIdentity</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcr80.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcp80.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcm80.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">assembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span></div> Microsoft.VC90.CRT.manifest<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="UTF-8" standalone="yes"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000"> Copyright (c) Microsoft Corporation.  All rights reserved. </span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assembly </span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">="urn:schemas-microsoft-com:asm.v1"</span><span style="COLOR: #ff0000"> manifestVersion</span><span style="COLOR: #0000ff">="1.0"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">noInheritable</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assemblyIdentity<br>        </span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="win32"</span><span style="COLOR: #ff0000"><br>        name</span><span style="COLOR: #0000ff">="Microsoft.VC90.CRT"</span><span style="COLOR: #ff0000"><br>        version</span><span style="COLOR: #0000ff">="9.0.21022.8"</span><span style="COLOR: #ff0000"><br>        processorArchitecture</span><span style="COLOR: #0000ff">="x86"</span><span style="COLOR: #ff0000"><br>        publicKeyToken</span><span style="COLOR: #0000ff">="1fc8b3b9a1e18e3b"</span><span style="COLOR: #ff0000"><br>    </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcr90.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcp90.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">file </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="msvcm90.dll"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">assembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span></div> 鐒跺悗灝哣C8鐨?涓猟ll浠ュ強(qiáng)榪欎釜manifest瑁呭埌涓涓枃浠跺す閲岋紝騫跺皢鏂囦歡澶瑰懡鍚嶄負(fù)Microsoft.VC80.CRT銆?br>鍚屾牱灝哣C9鐨?涓猟ll浠ュ強(qiáng)榪欎釜manifest瑁呭埌涓涓枃浠跺す閲岋紝騫跺皢鏂囦歡澶瑰懡鍚嶄負(fù)Microsoft.VC90.CRT銆?br>灝嗚繖2涓枃浠跺す鏀懼埌涓巈xe鏂囦歡錛堝強(qiáng)鍏墮儴緗叉枃浠訛級(jí)鎵鍦ㄧ洰褰曚笅灝監(jiān)K浜?jiǎn)銆?br>鑷充簬涓轟粈涔圴C9緙栬瘧鐨勭▼搴忚鐢╒C8鐨刣ll錛屽ぇ瀹跺彲浠ョ湅鐪嬫垜渚嬬▼閮ㄧ講鏂囦歡錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version='1.0' encoding='UTF-8' standalone='yes'</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assembly </span><span style="COLOR: #ff0000">xmlns</span><span style="COLOR: #0000ff">='urn:schemas-microsoft-com:asm.v1' </span><span style="COLOR: #ff0000">manifestVersion</span><span style="COLOR: #0000ff">='1.0'><br>  </span><span style="COLOR: #ff0000"><trustInfo xmlns</span><span style="COLOR: #0000ff">="urn:schemas-microsoft-com:asm.v3"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">security</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">requestedPrivileges</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">requestedExecutionLevel </span><span style="COLOR: #ff0000">level</span><span style="COLOR: #0000ff">='asInvoker' </span><span style="COLOR: #ff0000">uiAccess</span><span style="COLOR: #0000ff">='false' </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">requestedPrivileges</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">security</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">trustInfo</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">dependentAssembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assemblyIdentity </span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">='win32' </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">='Microsoft.VC90.CRT' </span><span style="COLOR: #ff0000">version</span><span style="COLOR: #0000ff">='9.0.21022.8' </span><span style="COLOR: #ff0000">processorArchitecture</span><span style="COLOR: #0000ff">='x86' </span><span style="COLOR: #ff0000">publicKeyToken</span><span style="COLOR: #0000ff">='1fc8b3b9a1e18e3b' </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">dependentAssembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">dependentAssembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>      </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">assemblyIdentity </span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">='win32' </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">='Microsoft.VC80.CRT' </span><span style="COLOR: #ff0000">version</span><span style="COLOR: #0000ff">='8.0.50727.762' </span><span style="COLOR: #ff0000">processorArchitecture</span><span style="COLOR: #0000ff">='x86' </span><span style="COLOR: #ff0000">publicKeyToken</span><span style="COLOR: #0000ff">='1fc8b3b9a1e18e3b' </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br>    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">dependentAssembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br>  </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">dependency</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">assembly</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br></span></div> VC 2008鐢熸垚鍑烘潵灝遍渶瑕乂C90鍜孷C80鐨凜RT錛屾垜浠兘鏈変粈涔堣劸姘斿憿……<br>涔熷氨鏄錛岃繕鍒浣爀xe鏂囦歡澶氬ぇ錛岃淇濊瘉姝e父榪愯錛屾垜浠渶瑕侀鍏堟嫹璐濊繖8涓枃浠?#8230;…<br>MinGW(gcc)緙栬瘧鐨勫氨娌¤繖浜涢夯鐑?chǔ)銆傛墍浠ワ紝鎴戠幇鍦ㄩ兘鏄敤涓や釜緙栬瘧鍣ㄧ紪璇戜袱涓猠xe浠ヤ緵鍙戝竷浜?jiǎn)銆? <img src ="http://m.shnenglu.com/lf426/aggbug/46885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lf426/" target="_blank">lf426</a> 2008-04-12 01:51 <a href="http://m.shnenglu.com/lf426/archive/2008/04/12/46885.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Microsoft Visual C++ 2008 Express Edition涓嬩負(fù)exe紼嬪簭娣誨姞鍥炬爣http://m.shnenglu.com/lf426/archive/2008/03/31/45833.htmllf426lf426Mon, 31 Mar 2008 11:24:00 GMThttp://m.shnenglu.com/lf426/archive/2008/03/31/45833.htmlhttp://m.shnenglu.com/lf426/comments/45833.htmlhttp://m.shnenglu.com/lf426/archive/2008/03/31/45833.html#Feedback4http://m.shnenglu.com/lf426/comments/commentRss/45833.htmlhttp://m.shnenglu.com/lf426/services/trackbacks/45833.html        緇撴灉姣旀垜鎯沖儚綆鍗曞緱澶氾紒
        鎴戠敤VC6瀵煎叆涓涓猧co鏂囦歡錛屽茍寰楀埌浜?jiǎn)瀹冪殑璧勬簮鏂囦欢Script1.rc銆傚樋鍢匡紝C椋庢牸鐨勶紝閭e氨涓嶅姘旂殑鍒嗘瀽浜?jiǎn)銆傚師鏉ヨ鐢ㄥ埌VC6鐨?涓ご鏂囦歡錛歳esource.h錛宎fxres.h鍜學(xué)INRES.H銆傛垜鎶妑c鏂囦歡鍜?涓ご鏂囦歡錛屼互鍙?qiáng)ico鍥炬爣鏂囦歡閮藉鍏C 2008 Express鐨勯」鐩腑錛屽眳鐒跺氨鏃犳儏鐨勬垚鍔熶簡(jiǎn)錛佺湅鏉xpress浠嶇劧涓嶆劎鏄疺S鐨勯槈鍓茬増錛屽叾瀹炲氨鏄皯浜?jiǎn)鐐规潗鏂欏Q屽熀鏈兘鍔涜繕鏄湪鐨勩俕^
        鏈鍚庢垜騫茶剢鎶?涓猦鏂囦歡鍚堝茍鍒皉c鏂囦歡涓簡(jiǎn)錛屽茍涓旂粰瀹冭搗涓ソ璁扮殑鍚嶅瓧錛歩con.rc錛屽茍鍋氫簡(jiǎn)綆鍗曠殑淇敼銆傜幇鍦ㄤ嬌鐢ㄨ搗鏉ュ氨鏇寸畝鍗曚簡(jiǎn)錛?br>1銆佸皢icon.rc瀵煎叆VC2008鐨勮祫婧愶紙Resource Files錛変腑錛?br>2銆佸皢ico鏂囦歡鏇村悕涓簂ogo.ico騫舵斁鍒伴」鐩枃浠跺す涓嬶紙鍗沖瓨鏀綾pp鍜宧鏂囦歡鐨勬枃浠跺す錛夛紱
3銆佺紪璇戯紝OK浜?jiǎn)锛?br>        鎴戝湪婕旂ず紼嬪簭涓寘鍚簡(jiǎn)榪欎釜濂界敤鐨刬con.rc錛屾湁鍏磋叮鐨勬湅鍙嬪彲浠ョ洿鎺ヤ笅杞芥潵浣跨敤浜?jiǎn)锛屾?zhèn)ㄧ敋鑷抽兘涓嶉渶瑕佽VC6銆備笅杞藉湴鍧錛氾紙鍦╮c鏂囦歡澶逛笅錛?br>http://www.fs2you.com/zh-cn/files/62f0acf0-ff11-11dc-a4f4-0014221b798a/

lf426 2008-03-31 19:24 鍙戣〃璇勮
]]>
国产欧美一区二区久久| 久久香蕉国产线看观看99| 狠狠干狠狠久久| 久久精品国产亚洲精品2020| 久久香综合精品久久伊人| 一本久久a久久精品综合夜夜 | 国产亚洲色婷婷久久99精品| 久久久亚洲欧洲日产国码二区| 久久性生大片免费观看性| 国产精品久久久久久久久久影院 | 无码国产69精品久久久久网站| 久久这里的只有是精品23| 欧美午夜精品久久久久免费视 | 久久久久黑人强伦姧人妻| 久久久久亚洲AV无码专区网站| 久久久久99精品成人片三人毛片| 久久久久九国产精品| 久久夜色精品国产噜噜亚洲a| 亚洲国产精品无码久久98| 久久中文字幕一区二区| 久久久久亚洲AV成人网| 久久免费观看视频| 亚洲综合伊人久久大杳蕉| 久久九九精品99国产精品| av午夜福利一片免费看久久| 精品久久久久久无码人妻热| 亚洲精品综合久久| 精品久久久久久中文字幕人妻最新| 久久精品一区二区三区不卡| 亚洲国产成人久久综合一区77| 久久天天躁狠狠躁夜夜不卡| 国产精品久久久久久影院 | 国产精品伊人久久伊人电影 | 伊人色综合久久天天人守人婷| 久久精品国产亚洲AV香蕉| 老司机国内精品久久久久| 日本WV一本一道久久香蕉| 97久久香蕉国产线看观看| 国产精品激情综合久久| 久久ww精品w免费人成| 久久久精品波多野结衣|