锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久青青草原综合伊人,色综合合久久天天综合绕视看,久久久久人妻一区二区三区vr http://www.shnenglu.com/tx7do/category/18484.html涓ヤ互寰嬪繁,瀹戒互寰呬漢. 涓夋濊屽悗琛?</br> GMail/GTalk: yanglinbo#google.com;</br> MSN/Email: tx7do#yahoo.com.cn;</br> QQ: 3 0 3 3 9 6 9 2 0 .zh-cnThu, 04 Sep 2014 02:43:54 GMTThu, 04 Sep 2014 02:43:54 GMT60紿楀彛澶у皬鎺у埗MINMAXINFOhttp://www.shnenglu.com/tx7do/archive/2014/03/12/206136.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Tue, 11 Mar 2014 17:04:00 GMThttp://www.shnenglu.com/tx7do/archive/2014/03/12/206136.htmlhttp://www.shnenglu.com/tx7do/comments/206136.htmlhttp://www.shnenglu.com/tx7do/archive/2014/03/12/206136.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/206136.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/206136.html杞澆鑷細http://blog.csdn.net/sqcfj/article/details/7245568

涓轟簡鎺у埗紿楀彛鐨勫ぇ灝忥紝鍦ㄧ獥鍙e垵濮嬪寲鏃訛紝闇瑕佺敤鍒癕INMAXINFO緇撴瀯浣撱?/p>

緇撴瀯浣擄細

typedef struct {
 POINT ptReserved;
 POINT ptMaxSize;
 POINT ptMaxPosition;
 POINT ptMinTrackSize;
 POINT ptMaxTrackSize;
}
 MINMAXINFO;


鍙傛暟璇存槑錛?br />
 ptMaxSize錛?nbsp; 璁劇疆紿楀彛鏈澶у寲鏃剁殑瀹藉害銆侀珮搴?br /> ptMaxPosition錛?nbsp;璁劇疆紿楀彛鏈澶у寲鏃秞鍧愭爣銆亂鍧愭爣
 ptMinTrackSize錛?nbsp;璁劇疆紿楀彛鏈灝忓搴︺侀珮搴?br /> ptMaxTrackSize錛氳緗獥鍙f渶澶у搴︺侀珮搴?br />

瀹炰緥錛?br />1銆佸湪紿楀彛綾繪槧灝凮N_WM_GETMINMAXINFO娑堟伅錛?br />2銆佸湪璇ュ嚱鏁頒慨鏀筂INMAXINFO緇撴瀯浣撴暟鎹細

void CTestDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
{
 lpMMI
->ptMaxSize.x = 800;  // 璁劇疆紿楀彛鏈澶у寲鏃剁殑瀹藉害
 lpMMI->ptMaxSize.y = 600;  // 璁劇疆紿楀彛鏈澶у寲鏃剁殑楂樺害
 lpMMI->ptMaxPosition.x = 100// 璁劇疆紿楀彛鏈澶у寲鏃秞鍧愭爣
 lpMMI->ptMaxPosition.y = 100// 璁劇疆紿楀彛鏈澶у寲鏃秠鍧愭爣
 lpMMI->ptMinTrackSize.x = 400// 璁劇疆紿楀彛鏈灝忓搴?/span>
 lpMMI->ptMinTrackSize.y = 400// 璁劇疆紿楀彛鏈灝忛珮搴?/span>
 lpMMI->ptMaxTrackSize.x = 600// 璁劇疆紿楀彛鏈澶у搴?/span>
 lpMMI->ptMaxTrackSize.y = 500// 璁劇疆紿楀彛鏈澶ч珮搴?/span>
 CDialog::OnGetMinMaxInfo(lpMMI);
}

 




]]>
瀵筗indows涓嬬殑File Mapping涓涓畝鍗曠殑灝佽http://www.shnenglu.com/tx7do/archive/2014/02/25/205927.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Mon, 24 Feb 2014 16:29:00 GMThttp://www.shnenglu.com/tx7do/archive/2014/02/25/205927.htmlhttp://www.shnenglu.com/tx7do/comments/205927.htmlhttp://www.shnenglu.com/tx7do/archive/2014/02/25/205927.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/205927.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/205927.html#ifndef __SharedMemory_H__#define __SharedMemory_H__class SharedMemory{public:&nb...  闃呰鍏ㄦ枃

]]>
waveInReset/waveOutReset姝婚攣鍘熷洜涓庤В鍐蟲柟妗?/title><link>http://www.shnenglu.com/tx7do/archive/2013/01/21/197429.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Sun, 20 Jan 2013 18:17:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2013/01/21/197429.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/197429.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2013/01/21/197429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/197429.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/197429.html</trackback:ping><description><![CDATA[<div><strong style="color: red">杞澆鑷細</strong><a style="color: red" ><strong>http://blog.csdn.net/soliddream66/article/details/5353960</strong></a><br /> <br /> <h2 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">闂鑳屾櫙<br /> </h2> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">褰曢煶鎾煶瀹為檯闇姹?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1銆侀殢鏃剁粓姝?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2銆佸綍闊沖茍闈炴枃浠訛紝鑰屾槸褰㈡垚rtp鍙戦?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">3銆佹挱闊沖茍闈炴簮浜庢枃浠訛紝鑰屾槸婧愪簬rtp</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鍥犳Waveform audio浣跨敤鐨刡uffer杈冨皬錛屼笉鏂殑瑁呰澆/鍙戦?buffer,緇堟鐨勬椂鍊橰eset騫朵笖close.</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">澶ц嚧濡備笅璋冪敤鐨勫驚鐜?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">褰曢煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInAddBuffer</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鎾煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutWrite</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">寰幆鍛ㄦ湡40ms錛屾垜閲囩敤鐨勬槸鍥炶皟鍑芥暟銆傞棶棰樻槸鏈夋椂鍊欒皟鐢╳aveInReset/waveOutReset浼氬艦鎴愭閿侊紝璋冪敤waveInReset/waveOutReset鐨勭嚎紼嬩笌鍥炶皟鍑芥暟鎵鍦ㄧ殑綰跨▼姝婚攣鍦ㄤ竴鍧椾簡銆?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <h2 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(51,102,153)" name="t1"></a>鍘熷洜鍒嗘瀽</h2> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">榪欐柟闈㈢綉涓婃湁鏂囩珷鎻愬埌錛屽氨鏄皟鐢╳aveInReset/waveOutReset鐨勫悓鏃惰皟鐢ㄤ簡褰曢煶/鎾煶寰幆璋冪敤鐨勬煇涓嚱鏁頒細褰㈡垚姝婚攣銆傛垜鍐嶇◢浣滆В閲婁笅錛屾垜浠煡閬揵uffer婊′簡鎴栨槸璋冪敤Reset閮戒細瑙﹀彂娑堟伅錛堝洖璋冨嚱鏁版柟寮忕殑璇濆氨鏄疢M_WOM_DONE/MM_WIM_DATA錛夛紝鐢變簬璋冪敤waveInReset/waveOutReset鎵鍦ㄧ殑綰跨▼錛屼笌鍥炶皟鍑芥暟鎵鍦ㄧ殑綰跨▼涓嶆槸涓涓嚎紼嬶紝鍥犳寰堝鏄撴挒杞︼紝涔熷氨鏄錛屼綘璋冪敤reset鐨勬椂鍊欙紝鍙︿竴涓嚎紼嬫濂藉湪澶勭悊MM_WOM_DONE/MM_WIM_DATA錛屼簬鏄氨榪欐牱姝婚攣浜嗐?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <h2 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(51,102,153)" name="t2"></a>瑙e喅鏂規</h2> <h3 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(51,102,153)" name="t3"></a>鏂規涓<br /> </h3> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鍏堝姞涓婃爣璁?鍋囪鏍囪bReset:bool)錛屼護bReset涓簍rue;</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鏍囪浣滅敤濡備笅</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">if(!bReset)</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">{</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">褰曢煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInAddBuffer</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鎾煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutWrite</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">}</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">寤舵椂璋冪敤waveInReset/waveOutReset錛屽歡鏃舵椂闂撮暱搴︿互寰幆鍛ㄦ湡涓哄錛屾垜榪欎釜渚嬪瓙涓篃灝辨槸閲囩敤40ms銆?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">褰撶劧涔熷彲浠ラ噰鐢ㄤ復鐣屼繚鎶ゃ?/p> <h3 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(51,102,153)" name="t4"></a><br /> </h3> <h3 style="text-align: left; padding-bottom: 0px; line-height: 26px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(51,102,153)" name="t5"></a>鏂規浜?/h3> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鎹竴涓搴﹀幓鑰冭檻闂錛屼箣鎵浠ユ閿侊紝鏄洜涓轟袱涓嚎紼嬪啿紿佷簡鐨勭紭鏁咃紝鎵浠ュ彲浠ュ緩绔嬩竴涓嚎紼?/p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">褰曢煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveInAddBuffer</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鎾煶</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutUnprepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutPrepareHeader</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">waveOutWrite</p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </p> <p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">涓巜aveInReset/waveOutReset閮芥斁鍒拌繖涓嚎紼嬪幓澶勭悊錛岃嚜鐒朵笉浼氬彂鐢熸閿佷簡銆?/p> </div><img src ="http://www.shnenglu.com/tx7do/aggbug/197429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2013-01-21 02:17 <a href="http://www.shnenglu.com/tx7do/archive/2013/01/21/197429.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>寰蔣浠g爜絳懼悕璇佷功浣跨敤鎸囧崡http://www.shnenglu.com/tx7do/archive/2012/12/06/196026.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Wed, 05 Dec 2012 16:04:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/12/06/196026.htmlhttp://www.shnenglu.com/tx7do/comments/196026.htmlhttp://www.shnenglu.com/tx7do/archive/2012/12/06/196026.html#Feedback1http://www.shnenglu.com/tx7do/comments/commentRss/196026.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/196026.html杞澆鑷細http://www.willrey.com/support/signcode_guide_pfx.html

寰蔣鐨勪唬鐮佺鍚嶈蔣浠?SignCode.exe 鐨勭己鐪佺殑“鍏稿瀷”絳懼悕綾誨瀷錛屽氨鏄?#8220;浠庡瓨鍌ㄥ尯閫夋嫨”絳懼悕璇佷功錛屽悓鏃剁敱浜庡井杞殑 Office 瀹忎唬鐮佺鍚嶅彧鏀寔鍚屾椂鍖呭惈浜嗙閽ュ拰鍏挜鐨?PFX 鏍煎紡絳懼悕璇佷功錛屼篃灝辨槸鐩存帴“浠庡瓨鍌ㄥ尯閫夋嫨”絳懼悕璇佷功銆傚湪鏀跺埌璇佷功鍚庤鐢ㄦ埛鍏?Windows 鐨勮瘉涔﹀瓨鍌ㄥ尯瀵煎嚭澶囦喚絳懼悕璇佷功錛屽鍑虹殑璇佷功鏍煎紡涓?PFX 鏍煎紡錛屼繚綆″ソ璇佷功鐨勫瘑鐮併?br />
涓嬭澆Thawte浠g爜絳懼悕璇佷功鐨勪腑綰ф牴璇佷功錛?br />https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=AR1382

涓嬭澆VeriSign浠g爜絳懼悕璇佷功鐨勪腑綰ф牴璇佷功錛?br />http://www.verisign.com/support/verisign-intermediate-ca/code-signing-intermediate/index.html


 浣跨敤寰蔣鐨?span class="Apple-converted-space"> SignCode.exe 灝卞彲浠ュ寰蔣鐨勪唬鐮佽繘琛岀鍚嶏紝濡傛灉鎮ㄦ病鏈夋鏂囦歡錛屾偍鍙互鐐瑰嚮 榪欓噷涓嬭澆銆?Signcode.exe 鍙互浣跨敤 DOS 鍛戒護琛屾柟寮忓疄鐜扮鍚嶏紝鎴戜滑鎺ㄨ崘鐢ㄦ埛浣跨敤鏁板瓧絳懼悕鍚戝鏂瑰紡錛岀畝鍗曟柟渚褲傝娉ㄦ剰錛氬鏋滄偍寮鍙戠殑ActiveX涓篒E鍔犺澆欏癸紝璇峰厛鏁板瓧絳懼悕姣忎釜CAB鏂囦歡涓殑.dll鍜?ocx絳夋枃浠訛紝鍐嶆妸榪欎簺鏂囦歡鎵撳寘鎴?cab鏂囦歡鍚庡啀鏁板瓧絳懼悕.cab鏂囦歡錛屼互紜繚鎵鏈塈E鍔犺澆欏歸兘琚獻E楠岃瘉鍜屼俊浠伙紝鍚﹀垯浼氭樉紺?#8220;鏈獙璇?#8221;鑰屽彲鑳藉獎鍝嶆甯歌繍琛屻?br />
鍏蜂綋絳懼悕鍚戝榪囩▼濡備笅錛?/p>

    (1) 榪愯 Signcode.exe 錛岃姹傛偍閫夋嫨闇瑕佺鍚嶇殑鏂囦歡錛屾敮鎸侊細鍙墽琛屾枃浠?(*.exe; *.dll; *.ocx) 錛?Cabinet 鎵撳寘鏂囦歡 (*.cab) 鍜岀洰褰曟枃浠?(*.cat) 錛屽涓嬪浘 1 鎵紺?( 濡傦細 TestSign.cab) 錛岃娉ㄦ剰錛氬鏋滅鍚嶇殑鏂囦歡宸茬粡鏈夋暟瀛楃鍚嶏紝鍒欎細琚柊鐨勭鍚嶈鐩?span class="Apple-converted-space"> signcode
(2) 鐐瑰嚮“涓嬩竴姝?#8221;鍚庯紝濡備笅鍥?2 鎵紺猴紝浼氳姹傛偍閫夋嫨“絳懼悕綾誨瀷”錛?鐩存帴鐐瑰嚮“涓嬩竴姝?#8221;鍗沖彲錛屽嵆閫夋嫨緙虹渷鐨?#8220;鍏稿瀷”絳懼悕綾誨瀷錛?span class="Apple-converted-space"> 
signcode
  (3) 濡備笅鍥?3 鎵紺猴紝鐐瑰嚮“浠庡瓨鍌ㄥ尯閫夋嫨”錛屽垯浼氭樉紺烘偍鐨勭數鑴戣瘉涔﹀瓨鍌ㄥ尯鐨勬墍鏈夎瘉涔︼紝鍖呮嫭瀛樺偍鍦ㄧ數鑴戝拰 USB Key 涓殑鎵鏈夋暟瀛楄瘉涔︼紝閫夋嫨鎮ㄧ殑絳懼悕璇佷功鍗沖彲錛?span class="Apple-converted-space"> 
verisign寰蔣浠g爜絳懼悕璇佷功
(4) 濡備笅鍥?4 鎵紺猴紝瑕佹眰濉啓璇ョ鍚嶄唬鐮佺殑鍔熻兘鎻忚堪錛屾帹鑽愪竴瀹氳璁ょ湡濉啓錛屽洜涓烘淇℃伅灝嗕細鍦ㄦ渶緇堢敤鎴蜂笅杞芥浠g爜鏃舵樉紺猴紝鏈夊姪浜庢渶緇堢敤鎴蜂簡瑙f浠g爜鐨勫姛鑳戒互紜畾鏄惁涓嬭澆瀹夎銆傜涓琛?#8220;鎻忚堪”鏄寚姝や唬鐮佺殑鍔熻兘鏂囧瓧鎻忚堪錛岀浜岃“ Web 浣嶇疆”鍒欒鏈緇堢敤鎴風偣鍑繪枃瀛楁弿榪版潵璇︾粏浜嗚В姝や唬鐮佺殑鍔熻兘鍜屼嬌鐢ㄦ柟娉曠瓑銆?/p>


(5) 鐐瑰嚮“涓嬩竴姝?#8221;鍚庯紝濡備笅鍥?9 鎵紺猴紝閫変腑“灝嗘椂闂存埑娣誨姞鍒版暟鎹腑”錛岃浣跨敤:

VeriSign 鍏嶈垂鎻愪緵鐨勬椂闂存埑URL錛?strong style="color: rgb(86,87,89); font-size: 12px">http://timestamp.verisign.com/scripts/timestamp.dll

    鏃墮棿鎴蟲湇鍔¢潪甯擱噸瑕侊紝娣誨姞鏃墮棿鎴沖悗錛屽嵆浣挎偍鐨勪唬鐮佺鍚嶈瘉涔﹀凡緇忚繃鏈燂紝浣嗙敱浜庢偍鐨勪唬鐮佹槸鍦ㄨ瘉涔︽湁鏁堟湡鍐呯鍚嶇殑錛屽垯鏃墮棿鎴蟲湇鍔′繚璇佷簡姝や唬鐮佷粛鐒跺彲淇★紝鏈緇堢敤鎴蜂粛鐒跺彲浠ユ斁蹇冧笅杞斤紝浣垮緱鍗充嬌浠g爜絳懼悕璇佷功宸茬粡榪囨湡錛屾偍涔熸棤闇閲嶇宸茬粡絳懼悕鐨勪唬鐮併?/p>


 (6) 鐐瑰嚮“涓嬩竴姝?#8221;鍚庯紝濡備笅鍥?6 鎵紺猴紝浼氭彁紺哄凡緇忓畬鎴愭暟瀛楃鍚嶅悜瀵鹼紝鐐瑰嚮“瀹屾垚”灝卞畬鎴愪簡涓枃鐗堜唬鐮佺鍚嶈瘉涔︾殑浠g爜絳懼悕銆?br /> 



]]>
Speex manul涓枃鐗?/title><link>http://www.shnenglu.com/tx7do/archive/2012/11/21/195510.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Wed, 21 Nov 2012 15:56:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/11/21/195510.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/195510.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/11/21/195510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/195510.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/195510.html</trackback:ping><description><![CDATA[<strong style="color: red">杞澆鑷?</strong><a style="color: red" ><strong>http://www.cnblogs.com/rosesmall/archive/2012/04/18/2455395.html</strong></a><br /><br /> <div style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-break: normal !important; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" id="cnblogs_post_body"> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span><strong>鍦╒OIP鐨勯煶棰戠畻娉曚腑錛屽洖闊沖鐞嗗凡緇忔垚涓轟竴涓叧緋婚氳瘽璐ㄩ噺鐨勪富瑕侀棶棰樸?/strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span><strong>鍥炲0鐨勪駭鐢熷湪IP緗戠粶涓昏鏈変袱縐嶏細<br />1.澹板鍥炲0<br />2.鐢佃礬鍥炲0</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span><strong>澹板鍥炲0涓昏鍙堝垎鎴愪互涓嬪嚑縐?<br />a ) 鐩存帴鍥炲0:鐢辨壃澹板櫒浜х敓鐨勫0闊蟲湭緇忎換浣曞弽灝勭洿鎺ヨ繘鍏ラ害鍏嬮<br />b ) 闂存帴鍥炲0: 鐢辨壃澹板櫒鍙戝嚭鐨勫0闊崇粡榪囧嬈″弽灝勫悗,鍐嶈繘鍏ic<br />瀵逛簬絎簩縐嶅洖澹?鎷ユ湁澶氳礬寰?鏃跺彉鎬х殑鐗圭偣.鏄瘮杈冮毦澶勭悊鐨?</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span><strong>鐢變簬IP緗戠粶涓嬬殑浼犺緭鐨勫歡榪熻緝澶?鑰屼竴鑸儏鍐典笅,瀵逛簬浜鴻?濡傛灉澹伴煶寤惰繜杈懼埌浜?0ms浠ヤ笂鐨勮瘽,閭d箞鍥炲0灝變細瓚婃潵瓚婃槑鏄?<br />涓鑸潵璁?VOIP涓殑澹伴煶寤惰繜涓昏鏉ヨ嚜浜庡嚑涓柟闈?<br />1. 緙栫爜寤惰繜: 涓鑸儏鍐典笅緙栫爜綆楁硶鍦ㄥ0闊沖帇緙╂椂閮戒細浜х敓寤惰繜,灝辨垜浠噰鐢ㄧ殑Speex鏉ヨ,寤惰繜澶ф鍦?0ms宸﹀彸<br />2. 澶勭悊寤惰繜, 灝佽鏃跺歡, 緙撳啿鏃跺歡絳?br />3. 鍦↖P緗戠粶涓暟鎹殑浼犺緭榪囩▼涔熶細鐓ф垚寤舵椂.榪欑敱褰撳墠鐨勭綉緇滅姸鍐靛喅瀹?</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span><strong>鍥炲0娑堥櫎鐨勬ā鍨?<br />a) 寤虹珛榪滅澹伴煶妯″瀷,榪涜鍥炲0浼拌, 浠庨噰闆嗙殑鍊間腑鍑忓幓浼拌鍊?br />b) 澹板妯″瀷</strong></span></span></p> <h4 id="subjcns!31B2F8637FF39314!234" class="TextColor1"><span>Speex manul(鎵嬪唽)涓枃鐗?/span></h4> <div class="amkciey" id="msgcns!31B2F8637FF39314!234"> <div> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>Speex</span></span><span>鏄竴濂椾笓闂ㄧ敤浜庡帇緙╁0闊崇殑搴?/span><span lang="EN-US"><span>,</span></span><span>鐢變簬鍏朵笓闂ㄩ拡瀵瑰0闊?/span><span lang="EN-US"><span>,</span></span><span>鎵浠ュ帇緙╁0闊崇殑鎬ц兘闈炲父楂?/span><span lang="EN-US"><span>.Speex</span></span><span>鐢變簬鍏跺帇緙╂ц兘</span><span lang="EN-US"><span>,</span></span><span>鍙?/span><span lang="EN-US"><span>0.80</span></span><span>鐗堝悗鐨勮法騫沖彴鐨勬ц兘</span><span lang="EN-US"><span>,</span></span><span>鎵浠ュ湪緗戠粶澹伴煶鐨勪紶杈撲腑鏈夊緢澶х殑浠峰?/span><span lang="EN-US"><span>.</span></span><span>浣嗘槸闇瑕佹敞鎰忕殑鏄?/span><span lang="EN-US"><span>speex</span></span><span>鍙兘瀵瑰0闊寵繘琛屽帇緙?/span><span lang="EN-US"><span>,</span></span><span>涓嶆敮鎸侀煶涔愮殑鍘嬬緝</span><span lang="EN-US"><span>,</span></span><span>濡傛灉浣犻渶瑕侀煶涔愮殑鍘嬬緝浣犳垨璁擱渶瑕佺敤</span><span lang="EN-US"><span>vorbis</span></span><span>搴?/span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>       </span></span><span>浣嗘槸鐨?/span><span lang="EN-US"><span>speex</span></span><span>璧勬枡鍍忓叾瀹冨ぇ閮芥暟涓撶敤搴撲竴鏍?/span><span lang="EN-US"><span>,</span></span><span>騫舵病鏈夊ぇ澶氱殑涓枃璧勬枡</span><span lang="EN-US"><span>.</span></span><span>鎵浠ュ湪榪欓噷鎴戝喅瀹氬皢閲岄潰鏈鏍稿績鐨勭紪紼嬫妧鏈炕璇戝嚭鏉?/span><span lang="EN-US"><span>.</span></span><span>涓鏉ユ槸緇冧範緇冧範鑷繁緲昏瘧璧勬枡鐨勮兘鍔?/span><span lang="EN-US"><span>,</span></span><span>浜屾潵鏄柟渚夸竴浜涜嫳璇按騫寵緝宸殑鏈嬪弸</span><span lang="EN-US"><span>.</span></span><span>鐢變簬鏈漢鑳藉姏鏈夐檺</span><span lang="EN-US"><span>,</span></span><span>鏈変簺鎰熻鏈夊嚭鍏ユ垨闅劇悊瑙g殑鍦版柟鍙互鍘?/span><span lang="EN-US"><span>speex</span></span><span>鐨勫畼鏂圭綉绔?/span><span lang="EN-US"><a style="background-color: transparent; color: rgb(51,102,153); text-decoration: none; background-origin: initial; background-clip: initial" ><span>www.speex.org</span></a></span><span>鎵懼埌鑻辨枃鍘熺増鐨勮鏄?/span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span>緲昏瘧鐨勪竴浜涜鏄?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>1,</span></span><span>瀵逛簬涓浜涗笓鏈夊悕璇嶅</span><span lang="EN-US"><span>speex,api</span></span><span>涓嶈繃琛岀炕璇?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>2,</span></span><span>瀵逛簬涓浜涙柊姒傚康緲昏瘧</span><span lang="EN-US"><span>,</span></span><span>浠ュ強鍏跺畠鐨勭炕璇戣繃鏉ヤ篃璁鎬細浜х敓姝т箟鐨勬枃瀛?/span><span lang="EN-US"><span>,</span></span><span>鐢ㄤ腑</span><span lang="EN-US"><span>/</span></span><span>鑻變袱縐嶆柟寮忔爣鍑?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>       </span></span><span>濡?/span><span lang="EN-US"><span>:</span></span><span>瀵硅瘽</span><span lang="EN-US"><span>(speech),</span></span><span>浣嶉噰闆?/span><span lang="EN-US"><span>(bit_packing)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>3,</span></span><span>鍩烘湰鍋氬埌鍜岃嫳鏂囧師琛屽璇?/span><span lang="EN-US"><span>.</span></span><span>鍙婅嫳鏂囧師鏂囦竴琛?/span><span lang="EN-US"><span>,</span></span><span>涓枃緲昏瘧榪囨潵涔熸槸涓琛?/span><span lang="EN-US"><span>,</span></span><span>浣跨炕璇戝悗鐨勬枃绔犲拰鍘熸枃鍩烘湰琛岃瀵圭収</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>4,</span></span><span>婧愪唬鐮佷笉緲昏瘧</span><span lang="EN-US"><span>,</span></span><span>濡?/span><span lang="EN-US"><span>SpeexBits bits;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>5,</span></span><span>璇█涓殑鍏沖仴瀛椾笉璇?/span><span lang="EN-US"><span>,</span></span><span>濡?/span><span lang="EN-US"><span>float</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>6,</span></span><span>涓姝や笉鏄叧鍋ュ瓧浣嗚嫳鏂囬氬父鍑虹幇鐨勮瘝絎竴嬈′互涓?/span><span lang="EN-US"><span>/</span></span><span>鑻辨枃鏍煎紡緇欏嚭</span><span lang="EN-US"><span>,</span></span><span>涔嬪悗鎸夊叿浣撴儏鍐電粰鍑鴻嫳鏂囨垨涓枃</span><span lang="EN-US"><span>,</span></span><span>濡?/span><span lang="EN-US"><span>:frame(</span></span><span>甯?/span><span lang="EN-US"><span>),</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span lang="EN-US"><span>7,</span></span><span>瀵逛竴浜涙湁鑷繁緲昏瘧璧鋒潵鎰熻鏈夋涔夌殑鍦版柟</span><span lang="EN-US"><span>,</span></span><span>鍔犳枩綰夸綔鏍囪</span> </p></div></div> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>1,speex鐨勪粙緇?鐣?</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong><span>2</span>鐗瑰緛鎻忚堪</strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>榪欎釜绔犺妭灞曠ず浜?/span><span lang="EN-US"><span>speex</span></span><span>鐨勪富瑕佺壒寰?/span><span lang="EN-US"><span>,</span></span><span>浠ヨ。涓浜涘叧浜庡璇?/span><span lang="EN-US"><span>(speech)</span></span><span>緙栫爜鐨勪竴涓蹇?/span><span lang="EN-US"><span>,</span></span><span>浠ヤ究</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>甯姪鎴戜滑鏇村ソ鐨勪簡瑙d笅涓绔犺妭</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>鍙栨牱鐜?span>(Sampling rate)</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>Speex</span></span><span>涓昏鏄璁′簡涓夌涓嶅悓鐨勫彇鏍風巼</span><span lang="EN-US"><span>:8kHz,16kHz,32kHz.</span></span><span>榪欎簺鍒嗗埆浠h〃浜嗙獎瀹?/span><span lang="EN-US"><span>(narrowband),</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>澶氶鐜?/span><span lang="EN-US"><span>,</span></span><span>瓚呭0</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>璐ㄩ噺</strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>Speex</span></span><span>緙栫爜澶ч兘鏁版椂闂存槸琚竴涓寖鍥翠負</span><span lang="EN-US"><span>0</span></span><span>鍒?/span><span lang="EN-US"><span>10</span></span><span>鐨勮川閲忓弬鏁版潵鎺у埗</span><span lang="EN-US"><span>  </span></span><span>鐨?/span><span lang="EN-US"><span>.</span></span><span>鍦ㄤ竴涓瘮鐗圭巼涓哄父閲?/span><span lang="EN-US"><span>(CBR)</span></span><span>鐨勬搷浣滀腑</span><span lang="EN-US"><span>,</span></span><span>璐ㄩ噺鍙傛暟鏄竴涓暣鏁?/span><span lang="EN-US"><span>,</span></span><span>鑰屽浜庡彉鍔ㄧ殑姣旂壒鐜?/span><span lang="EN-US"><span>(VBR)</span></span><span>鍙傛暟鏄竴涓?/span><span lang="EN-US"><span>float;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong><span>澶嶆潅鎬?/span><span lang="EN-US"><span>(</span></span><span>鍙橀噺</span><span lang="EN-US"><span>)</span></span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鐢?/span><span lang="EN-US"><span>speex,</span></span><span>浣犲彲浠ュ皢緙栫爜璁劇疆鎴愬厑璁哥殑澶嶆潅搴?/span><span lang="EN-US"><span>.</span></span><span>榪欑敱涓涓寖鍥翠負</span><span lang="EN-US"><span>1</span></span><span>鍒?/span><span lang="EN-US"><span>10</span></span><span>鐨勬暣鏁版潵鎺у埗瀹屾垚</span><span lang="EN-US"><span>,</span></span><span>灝卞儚浣犵敤閫夐」</span><span lang="EN-US"><span>-1</span></span><span>鍒?/span><span lang="EN-US"><span>-9</span></span><span>鏉ユ帶鍒?/span><span lang="EN-US"><span>gzip</span></span><span>鍜?/span><span lang="EN-US"><span>bzip2</span></span><span>鐨勫帇緙╄川閲?/span><span lang="EN-US"><span>.</span></span><span>鍦ㄩ氬父鐨勮繍鐢ㄤ腑</span><span lang="EN-US"><span>,</span></span><span>鍣0綰у埆鐨勫鏉傚害</span><span lang="EN-US"><span>1</span></span><span>鏄湪</span><span lang="EN-US"><span>1</span></span><span>鍒?/span><span lang="EN-US"><span>2dB</span></span><span>涔嬮棿</span><span lang="EN-US"><span>,</span></span><span>姣斿鏉傚害</span><span lang="EN-US"><span>10</span></span><span>瑕侀珮</span><span lang="EN-US"><span>,</span></span><span>浣嗘槸</span><span lang="EN-US"><span>CPU</span></span><span>闇瑕佸鏉傚害</span><span lang="EN-US"><span>10</span></span><span>澶ф</span><span lang="EN-US"><span>5</span></span><span>鍊嶉珮琛屽鏉傚害</span><span lang="EN-US"><span>1.</span></span><span>鍦ㄥ疄璺典腑</span><span lang="EN-US"><span>,</span></span><span>鏈濂界殑鏄緗湪</span><span lang="EN-US"><span>2</span></span><span>鍒?/span><span lang="EN-US"><span>4</span></span><span>涔嬮棿</span><span lang="EN-US"><span>,</span></span><span>灝界鏇撮珮鐨勮瀹氶氬父鏈夌敤</span><span lang="EN-US"><span>,</span></span><span>褰撶紪鐮佷竴涓潪瀵硅瘽澹伴煶</span><span lang="EN-US"><span>(non-speech sounds)</span></span><span>鍍?/span><span lang="EN-US"><span>DTMF</span></span><span>璇皟</span><span lang="EN-US"><span>(tones).</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>鍙樻嘗鐗圭巼<span>(VBR</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>Variable bit-rate (VBR) allows a codec to change its bit-rate dynamically to adapt to</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍙樻嘗鐗圭巼</span><span lang="EN-US"><span>(VBR)</span></span><span>鍏佽緙栫爜鍔ㄦ佸湴鏀瑰彉瀹冪殑娉㈢壒鐜囦互閫傚簲澹伴煶緙栫爜鐨?/span><span lang="EN-US"><span>”</span></span><span>闅懼害</span><span lang="EN-US"><span>”.</span></span><span>鍦?/span><span lang="EN-US"><span>speex</span></span><span>涓句緥鏉ヨ</span><span lang="EN-US"><span>,</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍍忓厓闊?/span><span lang="EN-US"><span>(vowel)</span></span><span>鍜岀灛闂撮珮闊?/span><span lang="EN-US"><span>(high-enenrg transients)</span></span><span>闇瑕佷釜楂樼殑姣旂壒鐜囨潵</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍙栧緱涓涓笉閿欑殑璐ㄩ噺</span><span lang="EN-US"><span>,</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鑰屾懇鎿﹂煶</span><span lang="EN-US"><span>(fricative)</span></span><span>鍙互琚厖鍒嗗湴鐢ㄧ浉瀵硅緝灝戠殑瀛楄妭鏉ヨ繘琛岀紪鐮?/span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鐢變簬涓婇潰榪欎釜鍘熷洜</span><span lang="EN-US"><span>,VBR</span></span><span>鍙互璋冭妭鍒頒竴涓綆鐨勬瘮鐗圭巼鍗磋揪鍒頒竴涓悓鏍風殑璐ㄩ噺</span><span lang="EN-US"><span>,</span></span><span>鎴栬呯敤</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鏌愪釜姣旂壒鐜囪揪鍒版洿濂界殑璐ㄩ噺</span><span lang="EN-US"><span>.</span></span><span>灝界鏈変笂闈㈣繖浜涗紭鐐?/span><span lang="EN-US"><span>,</span></span><span>浣嗘槸</span><span lang="EN-US"><span>VBR</span></span><span>涔熸湁涓や釜涓昏鐨勭己鐐?/span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>棣栧厛</span><span lang="EN-US"><span>,</span></span><span>浠呬粎闈犳寚瀹氳川閲忓?/span><span lang="EN-US"><span>,</span></span><span>榪欓噷娌℃湁涓涓叧浜庢渶鍚庡鉤鍧囨瘮鐗圭巼鐨勪繚璇?/span><span lang="EN-US"><span>.(</span></span><span>璇戣呮敞</span><span lang="EN-US"><span>:</span></span><span>浣滆呭ぇ姒傛槸鎯寵娌℃湁浠涔堟槑紜殑鏂規硶鐭ラ亾璐ㄩ噺鍊?/span><span lang="EN-US"><span>)</span></span><span>姝ゅ</span><span lang="EN-US"><span>,</span></span><span>瀵逛竴浜涘嵆鏃?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>閫氫俊</span><span lang="EN-US"><span>,</span></span><span>鍍?/span><span lang="EN-US"><span>IP</span></span><span>鐢佃瘽</span><span lang="EN-US"><span>(VoIP)</span></span><span>榪欑鍖呭惈鐫鏈澶х殑姣旂壒鐜囩殑</span><span lang="EN-US"><span>,</span></span><span>蹇呴』鎶婃瘮鐗圭巼璁句負瓚沖浣庝互閫傚簲</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>浼犺緭閫氶亾</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>r</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>騫沖潎姣旂壒鐜?span>(ABR)</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>騫沖潎姣旂壒鐜囬氳繃鍔ㄦ佸湴璋冭妭</span><span lang="EN-US"><span>VBR</span></span><span>璐ㄩ噺鍘誨緱鍒頒竴涓‘瀹氱殑鐩爣鐨勬瘮鐗圭巼</span><span lang="EN-US"><span>,</span></span><span>浠庤岃В鍐充簡</span><span lang="EN-US"><span>VBR</span></span><span>涓殑涓涓棶棰?/span><span lang="EN-US"><span>..</span></span><span>鍥犱負璐ㄩ噺</span><span lang="EN-US"><span>/</span></span><span>姣旂壒鐜囪鍗蟲椂鐨勮皟鏁翠簡</span><span lang="EN-US"><span>,</span></span><span>鏁翠綋璐ㄩ噺灝嗕細紼嶇◢浣庝簬鐢?/span><span lang="EN-US"><span>VBR</span></span><span>瀵逛竴涓?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>璁劇疆寰楀拰鐩爣騫沖潎姣旂壒鐜囬潪甯告帴榪戠殑璐ㄩ噺鏁扮紪鐮佸緱鍒扮殑緇撴灉</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span> </span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>澹伴煶鐢熷姩鎬ф嫻?span>(VAD)</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>澹伴煶鐢熷姩鎬ф嫻嬪皢浼氬彂瑙夐煶棰戞鍦ㄨ緙栫爜鎴愬璇?/span><span lang="EN-US"><span>,</span></span><span>闈欓煶</span><span lang="EN-US"><span>,</span></span><span>鎴栬儗鏅櫔闊?/span><span lang="EN-US"><span>.VAD</span></span><span>鎬誨湪鐢?/span><span lang="EN-US"><span>VBR</span></span><span>榪涜緙栫爜鏃舵殫涓搗浣滅敤</span><span lang="EN-US"><span>,</span></span><span>鍥犳閫夐」浠呬粎瀵逛竴涓笉鏄?/span><span lang="EN-US"><span>VBR</span></span><span>鐨勬搷浣滆搗浣滅敤</span><span lang="EN-US"><span>.</span></span><span>瀵逛簬涓嶆槸</span><span lang="EN-US"><span>VBR</span></span><span>鐨勬搷浣滄潵璇?/span><span lang="EN-US"><span>,speex</span></span><span>瀵熻鍑轟竴涓笉灞炰簬瀵硅瘽鐨勫懆鏈?/span><span lang="EN-US"><span>,</span></span><span>鐒跺悗瀵瑰畠鐢ㄨ凍澶熺殑瀛楄妭閲嶆柊鐢熸垚涓鴻儗鏅櫔闊?/span><span lang="EN-US"><span>.</span></span><span>涓嶈繖鍙仛<span>鑸掗傜殑鍣煶鐢熸垚</span></span><span lang="EN-US"><span>(</span></span><span lang="EN-US"><span>CNG).</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>涓嶈繛緇紶杈?span>(DTX)</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓嶈繛緇紶杈撴槸</span><span lang="EN-US"><span>VAD/VBR</span></span><span>鎿嶄綔鐨勪竴涓澶栭夐」</span><span lang="EN-US"><span>,</span></span><span>褰撹儗鏅櫔闊充竴瀹氭椂</span><span lang="EN-US"><span>,</span></span><span>瀹冨彲浠ュ畬鏁村湴浼犺緭</span><span lang="EN-US"><span>.</span></span><span>鍥犱負鍦ㄥ熀浜庢枃浠剁殑鎿嶄綔涓?/span><span lang="EN-US"><span>,</span></span><span>鎴戜滑涓嶈兘鍋滄瀵規枃浠惰繘琛屽啓鍏?/span><span lang="EN-US"><span>,</span></span><span>鎵浠ュ彧鏈?/span><span lang="EN-US"><span>5</span></span><span>瀛楄妭琚繖縐嶅撫鎵榪愮敤</span><span lang="EN-US"><span>.(</span></span><span>緇?/span><span lang="EN-US"><span>250bps</span></span><span>閫氫俊</span><span lang="EN-US"><span>)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>Perceptual enhancement</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong><span>鐭ヨ澧炲己</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鐭ヨ澧炲姞鏄В鐮佺殑涓閮ㄥ垎</span><span lang="EN-US"><span>,</span></span><span>瀹冨湪鎵撳紑鐨勬椂鍊欑敤鏉ュ噺灝戠敱緙栫爜瑙g爜鎵浜х敓鐨勫櫔闊?/span><span lang="EN-US"><span>.</span></span><span>鍦ㄥぇ閮芥暟</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鎯呭喌涓?/span><span lang="EN-US"><span>,</span></span><span>鐭ヨ澧炲己鍦ㄥ瑙備笂浣垮0闊崇鍘熷鍊兼洿榪?/span><span lang="EN-US"><span>(</span></span><span>濡傛灉鐢?/span><span lang="EN-US"><span>SNR),</span></span><span>浣嗘槸鍦ㄦ渶鍚庡畠浠嶇劧鍚搗鏉ユ洿濂?/span><span lang="EN-US"><span>(</span></span><span>涓昏涓婄殑鏀硅繘</span><span lang="EN-US"><span>)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>Algorithmic delay</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong>榪熸椂綆楁硶</strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>姣忎竴涓0闊崇紪鐮佸鑷翠簡鍦ㄤ紶杈撲笂鐨勫歡鏃?/span><span lang="EN-US"><span>.</span></span><span>瀵逛簬</span><span lang="EN-US"><span>speex,</span></span><span>榪欑寤舵椂絳変簬</span><span lang="EN-US"><span>frame</span></span><span>鐨勫ぇ灝忓姞涓婁竴浜?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鏁伴噺鐨勯渶瑕佸姣忎竴甯ц繘琛岀殑鍓嶇灮</span><span lang="EN-US"><span>(”look-adhead”).</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍦ㄧ獎瀹芥搷浣滀腑</span><span lang="EN-US"><span>(8kHz),</span></span><span>榪熸椂鏄?/span><span lang="EN-US"><span>30ms,</span></span><span>鑰屽浜庡棰戠巼</span><span lang="EN-US"><span>(2-44Hz),</span></span><span>榪熸椂鏄?/span><span lang="EN-US"><span>34ms.</span></span><span>榪欎簺鍊?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓嶅寘鎷?/span><span lang="EN-US"><span>CPU</span></span><span>緙栫爜</span><span lang="EN-US"><span>,</span></span><span>瑙g爜甯х殑鏃墮棿</span><span lang="EN-US"><span>.</span></span> </p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span><strong>鐢?span>speex</span>緙栫▼<span>(the libspeex api)</span></strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>榪欎釜绔犺妭鍑鴻璁茶堪浜嗗浣曠敤</span><span lang="EN-US"><span>speex api</span></span><span>榪涜緙栫▼</span><span lang="EN-US"><span>.</span></span><span>渚嬪瓙鐨勬簮浠e弸浣犱篃鍙互鍦ㄩ檮褰?/span><span lang="EN-US"><span>B</span></span><span>涓壘鍒?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>4.1 Encoding</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong><span>4.1</span>鍘嬬緝</strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓轟簡鐢?/span><span lang="EN-US"><span>Speex</span></span><span>鍘嬬緝瀵硅瘽</span><span lang="EN-US"><span>,</span></span><span>浣犻鍏堥渶瑕佸紩鐢ㄥご鏂囦歡</span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>#include <speex.h></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鐒跺悗浣犻渶瑕佸畾涔変竴涓?/span><span lang="EN-US"><span>Speex</span></span><span>鐨勪綅閲囬泦</span><span lang="EN-US"><span>(bit-packing)</span></span><span>緇撴瀯</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>SpeexBits bits;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>and a Speex encoder state</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>浠ュ強瀹氫箟涓涓?/span><span lang="EN-US"><span>speex</span></span><span>緙栫爜鍣ㄧ姸鎬侀噺</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>void *enc_state;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓婇潰瀹氫箟鐨勮繖鏍瘋鍒濆鍖?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>The two are initialized by:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_init(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>enc_state = speex_encoder_init(&speex_nb_mode);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓轟簡鏀寔澶氶鐜囩殑鍘嬬緝</span><span lang="EN-US"><span>,speex_nb_mode</span></span><span>灝嗚</span><span lang="EN-US"><span>sppex_wb_mode</span></span><span>鍙栦唬</span><span lang="EN-US"><span>.</span></span><span>鍦ㄥぇ閮芥暟</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鎯呭喌涓?/span><span lang="EN-US"><span>,</span></span><span>浣犻渶瑕佺煡閬撲綘鐢ㄧ殑妯″紡</span><span lang="EN-US"><span>(mode)</span></span><span>鐨勫撫</span><span lang="EN-US"><span>(frame)</span></span><span>鐨勫ぇ灝?/span><span lang="EN-US"><span>,</span></span><span>浣犲彲浠ュ緱鍒板湪</span><span lang="EN-US"><span>frame_size</span></span><span>鍙橀噺閲屽緱鍒拌繖鍊?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encoder_ctl(enc_state,SPEEX_GET_FRAME_SIZE,&frame_size);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓浣嗗垵濮嬪寲瀹屾瘯</span><span lang="EN-US"><span>,</span></span><span>瀵逛簬姣忎竴涓緭鍏ュ撫</span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_reset(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encode(enc_state, input_frame, &bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>nbBytes = speex_bits_write(&bits, byte_ptr, MAX_NB_BYTES);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>涓婇潰</span><span lang="EN-US"><span>input_frame</span></span><span>鏄竴涓寚鍚戝璇?/span><span lang="EN-US"><span>(speech)</span></span><span>甯?/span><span lang="EN-US"><span>(frame)</span></span><span>鐨?/span><span lang="EN-US"><span>float</span></span><span>鎸囬拡</span><span lang="EN-US"><span>(pointing);byte_ptr</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鏄寚鍚戠紪鐮佸撫寮濮嬪啓鐨勫湴鏂圭殑</span><span lang="EN-US"><span>char</span></span><span>鎸囬拡</span><span lang="EN-US"><span>,MAX_NB_BYTES</span></span><span>鏄兘</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍐欒繘</span><span lang="EN-US"><span>byte_ptr</span></span><span>鑰屼笉浼氶犳垚婧㈠嚭鐨勬渶澶ф暟</span><span lang="EN-US"><span>.nbBytes</span></span><span>鏄竴涓疄闄呭啓鍏?/span><span lang="EN-US"><span>btye_ptr</span></span><span>鐨勬暟</span><span lang="EN-US"><span>,</span></span><span>鍗崇紪鐮佺殑瀹為檯澶у皬</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍦ㄨ皟鐢?/span><span lang="EN-US"><span>speex_bits_write</span></span><span>鍓?/span><span lang="EN-US"><span>,</span></span><span>鍙兘浣犻渶瑕佽皟鐢?/span><span lang="EN-US"><span>speex_bits_nbytes(&bits)</span></span><span>寰楀埌闇瑕佸啓鍏?/span><span lang="EN-US"><span>(write)</span></span><span>鐨勫瓧鑺傚ぇ灝?/span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍦ㄤ綘宸茬粡緙栫爜鍚?/span><span lang="EN-US"><span>,</span></span><span>閲婃斁鎵鏈夌殑璧勬簮</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_destroy(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encoder_destroy(enc_state);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>That’s about it for the encoder.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span> </span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>榪欏氨鏄叧浜庣紪鐮佺殑鏂歸潰</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span> </span></p> <h4 id="subjcns!31B2F8637FF39314!276" class="TextColor1"><span>Speex manul涓枃鐗堜笁</span></h4> <div class="wmmk2ke" id="msgcns!31B2F8637FF39314!276"> <div> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>闄勬簮浠g爜鐨勭炕璇?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>B Sample code</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span><strong><span>B </span>渚嬬▼婧愪唬鐮?/strong></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>榪欎釜绔犺妭婕旂ず浜嗕竴孌電敤</span><span lang="EN-US"><span>speex</span></span><span>緙栫爜</span><span lang="EN-US"><span>,</span></span><span>瑙g爜瀵硅瘽</span><span lang="EN-US"><span>(speech)</span></span><span>鐨勬簮浠g爜</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>鍙互濡備笅鐢?/span><span lang="EN-US"><span>api</span></span><span>鍛戒護鏉ョ紪鐮佸茍瑙g爜涓涓枃浠?/span><span lang="EN-US"><span>:</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>璇戣呮敞</span><span lang="EN-US"><span>:</span></span><span>榪欓噷璇寸殑</span><span lang="EN-US"><span>api</span></span><span>鍛戒護鏄寚</span><span lang="EN-US"><span>unix</span></span><span>鐨勭敤</span><span lang="EN-US"><span>”|”</span></span><span>榪涜綆¢亾鍐欏叆璇誨嚭</span><span lang="EN-US"><span>.</span></span><span>鍦?/span><span lang="EN-US"><span>windows</span></span><span>涓嬭繖鏍峰茍涓嶈兘瀹炵幇</span><span lang="EN-US"><span>.</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>% sampleenc in_file.sw | sampledec out_file.sw</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span>榪欓噷榪欎袱孌典唬鐮侀兘娌℃湁寮曠敤鍏跺畠鐨勫ご鏂囦歡</span><span lang="EN-US"><span>,</span></span><span>騫朵互</span><span lang="EN-US"><span>16 </span></span><span>姣旂壒鐜?/span><span lang="EN-US"><span>(bits)</span></span><span>榪涜緙栫爜</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>natural endianness).</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span><strong>B.1 sampleenc.c</strong></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>Sameleenc </span></span><span>鐢ㄤ竴涓湭鍔犲伐鐨?/span><span lang="EN-US"><span>16</span></span><span>姣旂壒鐜?/span><span lang="EN-US"><span>(bits)</span></span><span>鏂囩珷</span><span lang="EN-US"><span>,</span></span><span>緇欏畠緙栫爜騫朵駭鐢熶竴涓?/span><span lang="EN-US"><span>speex </span></span><span>嫻?/span><span lang="EN-US"><span>(steam)</span></span><span>緇欐爣鍑嗚緭鍑?/span><span lang="EN-US"><span>.</span></span><span>娉ㄦ剰宸插帇緙╃殑鍜?/span><span lang="EN-US"><span>speexenc/speexdec</span></span><span>涓嶅拰璋?/span><span lang="EN-US"><span>!</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>#include <speex.h></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>#include <stdio.h></span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>/*</span></span><span>甯х殑澶у皬鍦ㄨ繖涓緥紼嬩腑鏄竴涓浐瀹氱殑鍊?/span><span lang="EN-US"><span>,</span></span><span>浣嗗畠騫朵笉鏄繀欏昏繖鏍?/span><span lang="EN-US"><span>*/</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span> </span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>#define FRAME_SIZE 160</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>int main(int argc, char **argv)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>{</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>char *inFile;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>FILE *fin;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>short in[FRAME_SIZE];</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>float input[FRAME_SIZE];</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>char cbits[200];</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>int nbBytes;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>/*</span></span><span>淇濆瓨緙栫爜鐨勭姸鎬?/span><span lang="EN-US"><span>*/</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>void *state;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>/*</span></span><span>淇濆瓨瀛楄妭鍥犳浠栦滑鍙互琚?/span><span lang="EN-US"><span>speex</span></span><span>甯歌</span><span>璇誨啓</span><span lang="EN-US"><span>*/</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span> </span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>SpeexBits bits;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>int i, tmp;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>鏂板緩涓涓柊鐨勭紪鐮佺姸鎬佸湪紿勫</span><span lang="EN-US"><span>(narrowband)</span></span><span>妯″紡涓?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>state = speex_encoder_init(&speex_nb_mode);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>璁劇疆璐ㄩ噺涓?/span><span lang="EN-US"><span>8(15kbps)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>tmp=8;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encoder_ctl(state, SPEEX_SET_QUALITY, &tmp);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>inFile = argv[1];</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>fin = fopen(inFile, "r");</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>鍒濆鍖栫粨鏋勪嬌浠栦滑淇濆瓨鏁版嵁</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_init(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>while (1)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>{</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>璇誨叆涓甯?/span><span lang="EN-US"><span>16bits</span></span><span>鐨勫0闊?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>fread(in, sizeof(short), FRAME_SIZE, fin);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>if (feof(fin))</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>break;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>鎶?/span><span lang="EN-US"><span>16bits</span></span><span>鐨勫艱漿鍖栦負</span><span lang="EN-US"><span>float,</span></span><span>浠ヤ究</span><span lang="EN-US"><span>speex</span></span><span>搴撳彲浠ュ湪涓婇潰宸ヤ綔</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>for (i=0;i<FRAME_SIZE;i++)</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>input[i]=in[i];</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>娓呯┖榪欎釜緇撴瀯浣撻噷鎵鏈夌殑瀛楄妭</span><span lang="EN-US"><span>,</span></span><span>浠ヤ究鎴戜滑鍙互緙栫爜涓涓柊鐨勫撫</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_reset(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>瀵瑰撫榪涜緙栫爜</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encode(state, input, &bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>鎶?/span><span lang="EN-US"><span>bits</span></span><span>鎷瘋礉鍒頒竴涓埄鐢ㄥ啓鍑虹殑</span><span lang="EN-US"><span>char</span></span><span>鍨嬫暟緇?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>nbBytes = speex_bits_write(&bits, cbits, 200);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>棣栧厛鍐欏嚭甯х殑澶у皬</span><span lang="EN-US"><span>,</span></span><span>榪欐槸</span><span lang="EN-US"><span>sampledec</span></span><span>鏂囦歡闇瑕佺殑涓涓?/span><span lang="EN-US"><span>,</span></span><span>浣嗘槸浣犵殑搴旂敤紼嬪簭涓彲鑳戒笉涓鏍?/span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>fwrite(&nbBytes, sizeof(int), 1, stdout);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>鍐欏嚭鍘嬬緝鍚庣殑鏁扮粍</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>fwrite(cbits, 1, nbBytes, stdout);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>}</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>閲婃斁</span><span>緙栫爜鍣ㄧ姸鎬侀噺</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_encoder_destroy(state);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>//</span></span><span>閲婃斁</span><span lang="EN-US"><span>bit_packing</span></span><span>緇撴瀯</span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>speex_bits_destroy(&bits);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>fclose(fin);</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>return 0;</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span lang="EN-US"><span>}</span></span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px" align="left"><span> </span></p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px"><span> </span></p></div></div> <div id="ioowyiy" class="postTitle"><a style="background-color: transparent; color: rgb(51,102,153); text-decoration: none; background-origin: initial; background-clip: initial" ><span>濡備綍浣跨敤Speex涓殑AEC妯″潡錛屾彁楂樺0闊寵川閲忥紵</span></a></div> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">鍦⊿peex錛?a style="background-color: transparent; color: rgb(51,102,153); text-decoration: none; background-origin: initial; background-clip: initial" ><span>www.speex.org</span></a>錛夌殑鏈鏂扮増鏈腑錛屽紑濮嬮泦鎴愪簡鍥為煶娑堥櫎鐨勬ā鍧楋紝鑰屽洖闊蟲秷闄や竴鐩存槸Voip涔嬩腑浜熷緟瑙e喅鐨勪富瑕侀棶棰樸?br />寰堝鏈嬪弸鍜屾垜璇磗peex鐨刟ec妯″潡鐨勬晥鑳藉茍涓嶅ソ錛屾垜浠厛鏉ョ湅涓涓媠peex鐨刟ec鐨刟pi璋冪敤鏂瑰紡銆?/p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">/*<br />*鍒涘緩AEC瀵硅薄<br />*/<br />SpeexEchoState *echo_state = speex_echo_state_init(frame_size, filter_length);</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">frame_size 鐨勫彇鍊兼渶濂芥槸涓涓紪鐮佺殑frame澶у皬錛?鍦ㄤ綆甯﹀鏉′歡涓嬶紝涓鑸歡榪?0ms錛岃屽ぇ灝忎負160<br />filter_length,鏈濂芥槸鎴塊棿鍐呭弽灝勬椂闂寸殑1/3<br />濡? 涓涓埧闂寸殑鍙嶅皠鏃跺歡涓?00ms<br />    閭d箞榪欎釜filter_length灝辨渶濂芥槸100ms(榪欎釜闀垮害鍙堣縐頒負tail length).</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">鑰屽叾涓璮ilter_length鐨勮瀹氭槸涓涓叧閿?/p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">/*<br />*鎵цAEC<br />*/<br />speex_echo_cancel(echo_state, input_frame, echo_frame, output_frame, residue);</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">鍏朵腑:<br />input_frame: 灝辨槸琚0鍗℃崟鎹夊埌鐨勫0闊?br />echo_frame: 鏄敱鎵0鍣ㄦ挱鏀懼嚭鐨勫0闊?榪欎釜澹伴煶鏄渶瑕佷粠 input_frame涓姷娑堢殑澹伴煶.</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">output_frame 鏄鐞嗗畬浠ュ悗杈撳嚭鐨勫0闊?/p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">residue鏄竴涓彲閫夊弬鏁?濡傛灉涓嶄嬌鐢ㄥ彲浠ュ皢涔嬭緗負NULL, 涔熷彲浠ラ氳繃preprocessor 鏉ユ帶鍒?/p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">闂鐨勫叧閿槸 澶勭悊input鍜宔cho 涔嬮棿鐨勫叧緋?<br />涔熷氨鏄鍦ㄦ崟鎹夊埌鐨勪俊鍙峰拰鎾斁鐨勪俊鍙蜂箣闂寸殑寤惰繜蹇呴』瓚沖鐨勫皬,鎵嶅彲浠ユ彁楂樻晥鐜?</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">writetosndcard(echo_frame, frame_size)<br />readfromsndcard(input_frame, frame_size)<br />speex_echo_cancel(echo_state, input_frame, echo_frame, output_frame, residue)<br />濡傛灉浣犳兂瑕佸敖鍙兘鐨勫噺灝忎俊鍙蜂腑鐨勫洖闊?閭d箞鍙互灝唕esidue榪欎釜鍙傛暟璁劇疆涓哄櫔闊沖弬鏁?</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">鎴戠浉淇″湪澶у鏁版儏鍐典笅錛岄兘鏄洜涓哄0闊蟲崟鎹夊拰澹伴煶鎾斁涔嬮棿鐨勫悓姝ラ棶棰樻病鏈夊鐞嗗ソ錛屽鑷寸殑闊抽璐ㄩ噺涓嬮檷銆?/p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">/*<br />*閿姣佸拰澶嶄綅<br />*/<br />speex_echo_state_destroy(echo_state);</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">speex_echo_state_reset(echo_state);<br />涓嶅啀澶嶈堪浜嗭紒</p> <p style="line-height: 1.5; text-indent: 0px; margin: 10px auto; font-size: 13px">璇存槑錛?br />鎹鍦⊿peex鐨勬渶鏂扮殑1.2beta鐗堟湰涓婏紝Speex鎻愪緵浜嗗彲閫夋嫨鐨勶紝綆鍖栫殑API錛屾潵鎻愰珮echo鎵ц榪囩▼涓殑鍚屾闂銆?/p></div><img src ="http://www.shnenglu.com/tx7do/aggbug/195510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-11-21 23:56 <a href="http://www.shnenglu.com/tx7do/archive/2012/11/21/195510.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Speex 鍥炲0娑堥櫎http://www.shnenglu.com/tx7do/archive/2012/11/21/195507.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Wed, 21 Nov 2012 15:44:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/11/21/195507.htmlhttp://www.shnenglu.com/tx7do/comments/195507.htmlhttp://www.shnenglu.com/tx7do/archive/2012/11/21/195507.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/195507.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/195507.html闃呰鍏ㄦ枃

]]>
AEC (Acoustic Echo Canceller) 鍥為煶娑堥櫎鍒濇帰http://www.shnenglu.com/tx7do/archive/2012/11/21/195505.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Wed, 21 Nov 2012 15:23:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/11/21/195505.htmlhttp://www.shnenglu.com/tx7do/comments/195505.htmlhttp://www.shnenglu.com/tx7do/archive/2012/11/21/195505.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/195505.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/195505.html杞澆鑷?http://www.cnblogs.com/rainbowzc/archive/2006/08/07/2422323.html

AEC鍥炲0鎶戝埗綆楁硶錛岃繖涓瘮杈冮毦錛岀洰鍓嶅彲浠ヤ嬌鐢╠irectsound榪涜澶勭悊錛屼笉榪囧彧鑳藉湪xp涓嬩嬌鐢紝鍒殑緋葷粺涓嶆敮鎸侊紒
鐩墠gips瀵規湰綆楁硶鏈夊嚭鑹茬殑瀹炵幇錛宻kype灝辨槸浣跨敤鐨勮寮曟搸錛?br />瑕佹兂鑷繁瀹炵幇錛屾亹鎬曞緢鍥伴毦錛?br /> 

AEC 妯″潡鏄?Microsoft DirectSound 搴曞眰緇撴瀯鐨勪竴閮ㄥ垎銆傝緇勪歡鍖呮嫭涓嬪垪鐗規у拰闄愬埗錛?/p>

AEC鍙湪涓嶈秴榪?25×15×9 鑻卞昂鐨勫皬鎴塊棿鎵嶄細鏈夋晥錛?span class="Apple-converted-space"> 
AEC鍙鍗曞0閬撴湁鏁堬紝褰撹緭鍑烘槸澶氫釜閫氶亾鐨勭珛浣撳0鐨勬椂鍊欙紝鍙湁涓涓氶亾鑳藉鍏鋒湁鍥炴嘗鎶墊秷鐨勬晥鏋滐紱 
AEC涓嶈兘鎶墊秷鏉ヨ嚜鍏跺畠澹伴煶婧愮殑澹伴煶錛屾瘮濡傝儗鏅腑鏀墮煶鏈烘斁鍑烘潵鐨勬瓕鏇詫紱
IDirectSoundFullDuplex8*      DirectSoundFD;//
IDirectSoundCaptureBuffer8*  DirectSoundCaptureBuf8;//鎹曟崏緙撳啿鍖烘帴鍙f寚閽?br />IDirectSoundBuffer8*         DirectSoundBuf8;//鍥炴斁緙撳啿鍖烘帴鍙f寚閽?br />IDirectSoundBuffer8*         pIUnkown;//鍥炴斁緙撳啿鍖烘帴鍙f寚閽?/p>

extern "C" const GUID IID_IDirectSoundBuffer8 = {0x6825a449, 0x7524, 0x4d82,{ 0x92, 0x0f, 0x50, 0xe3, 0x6a, 0xb3, 0xab, 0x1e}};
extern "C" const GUID GUID_DSCFX_MS_NS        = {0x11c5c73b, 0x66e9, 0x4ba1, {0xa0, 0xba, 0xe8, 0x14, 0xc6, 0xee, 0xd9, 0x2d}};
extern "C" const GUID GUID_DSCFX_CLASS_NS = {0xe07f903f, 0x62fd, 0x4e60, {0x8c, 0xdd, 0xde, 0xa7, 0x23, 0x66, 0x65, 0xb5}};
extern "C" const GUID GUID_DSCFX_MS_AEC = {0xcdebb919, 0x379a, 0x488a, {0x87, 0x65, 0xf5, 0x3c, 0xfd, 0x36, 0xde, 0x40}};
extern "C" const GUID GUID_DSCFX_CLASS_AEC = {0xBF963D80L, 0xC559, 0x11D0, {0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}};
extern "C" const GUID DAlgorithm ={0x00000000,  0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};


//1.鍒涘緩鍙婂垵濮嬪寲DirectSound
WAVEFORMATEX WaveDataFormat={WAVE_FORMAT_PCM, 1,8000,16000,2,16, 0};             
//鍥炴斁緙撳啿鍖恒俽ender buffer
DSBUFFERDESC desc;
memset(&desc, 0, sizeof(desc)); 
desc.dwSize = sizeof(desc);
desc.dwFlags = DSBCAPS_CTRLFX | DSBCAPS_GLOBALFOCUS;
desc.dwBufferBytes = 2000 * NUM_REC_NOTIFICATIONS;//寰呭畾
desc.dwReserved = 0;
desc.lpwfxFormat = &WaveDataFormat;
   

//鎹曟崏緙撳啿鍖篈EC鍜孨S鏁堟灉銆?br />DSCEFFECTDESC efft[2];
memset(efft, 0, sizeof(efft));
//AEC鏁堟灉
efft[0].dwSize = sizeof(efft[0]);
efft[0].dwFlags = DSCFX_LOCSOFTWARE;
efft[0].guidDSCFXClass = GUID_DSCFX_CLASS_AEC;
efft[0].guidDSCFXInstance = GUID_DSCFX_MS_AEC;
//NS鏁堟灉
efft[1].dwSize = sizeof(efft[1]);
efft[1].dwFlags = DSCFX_LOCSOFTWARE;
efft[1].guidDSCFXClass = GUID_DSCFX_CLASS_NS;
efft[1].guidDSCFXInstance = GUID_DSCFX_MS_NS;
    
//鎹曟崏緙撳啿鍖恒俢apture buffer
DSCBUFFERDESC cdesc;
memset(&cdesc, 0, sizeof(cdesc));
cdesc.dwSize = sizeof(cdesc);
cdesc.dwFlags = DSCBCAPS_CTRLFX; 
cdesc.dwBufferBytes =  2000 * NUM_REC_NOTIFICATIONS;//寰呭畾
cdesc.lpwfxFormat = &WaveDataFormat;
cdesc.dwFXCount = 2;
cdesc.lpDSCFXDesc = efft;

HWND win = AfxGetApp()->m_pMainWnd->m_hWnd;
hr = DirectSoundFullDuplexCreate8(0, 0,&cdesc, &desc,win, 
DSSCL_PRIORITY,&DirectSoundFD, &DirectSoundCaptureBuf8,&DirectSoundBuf8, 0); 
DXTRACE_ERR( TEXT("DirectSoundFullDuplexCreate8"), hr );
//鎴愬姛鍒涘緩DirectSoundFD錛孌irectSoundCaptureBuf8錛孌irectSoundBuf8錛屽潎涓嶄負闆躲?/p>

if(!FAILED(hr))
    DirectSoundFD->QueryInterface(IID_IDirectSoundBuffer8, (void**)pIUnkown);
//鍙戠幇涓婇潰鐨刾IUnkown=0錛屾煡璇㈠け璐ワ紝涓轟粈涔堬紵
    AfxMessageBox("澶辮觸");



]]>
娣烽煶鍣ㄧ紪紼嬫帴鍙h璁?/title><link>http://www.shnenglu.com/tx7do/archive/2012/11/05/194617.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Mon, 05 Nov 2012 10:23:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/11/05/194617.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/194617.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/11/05/194617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/194617.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/194617.html</trackback:ping><description><![CDATA[     鎽樿: 杞澆鑷?http://www.cnblogs.com/windviki/archive/2011/08/31/2160683.html 娣烽煶鍣ㄧ紪紼嬫帴鍙h璁?緲昏瘧錛歸indviki@gmail.com 杞澆璇鋒敞鏄? 璇戣嚜錛歁IXER API ARGUMENTATION 涓轟簡鐞嗚В娣烽煶鍣ˋPI鏄浣曞伐浣滅殑錛屽繀欏誨厛浜嗚В鍏稿瀷鐨勫0鍗$殑紜歡甯冨眬銆?鎴戜滑鏈夊繀瑕佹兂璞′竴涓嬶紝澹板崱涓婃湁鍚勭鐙?..  <a href='http://www.shnenglu.com/tx7do/archive/2012/11/05/194617.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/tx7do/aggbug/194617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-11-05 18:23 <a href="http://www.shnenglu.com/tx7do/archive/2012/11/05/194617.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>CxImage浣跨敤鎺╃爜鑹茶緗忔槑鑹茬殑鍥?/title><link>http://www.shnenglu.com/tx7do/archive/2012/11/01/194161.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Thu, 01 Nov 2012 07:05:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/11/01/194161.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/194161.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/11/01/194161.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/194161.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/194161.html</trackback:ping><description><![CDATA[CxImage璁劇疆閫忔槑鑹茬殑鏂規硶:<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #0000ff">void</span><span style="color: #000000"> SetImageTransColor( CxImage</span><span style="color: #000000">*</span><span style="color: #000000"> pImg, BYTE R, BYTE G, BYTE B )<br /><img id="Codehighlighter1_65_250_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_250_Open_Text.style.display='none'; Codehighlighter1_65_250_Closed_Image.style.display='inline'; Codehighlighter1_65_250_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_65_250_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_65_250_Closed_Text.style.display='none'; Codehighlighter1_65_250_Open_Image.style.display='inline'; Codehighlighter1_65_250_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_65_250_Closed_Text"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_65_250_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pImg </span><span style="color: #000000">==</span><span style="color: #000000"> NULL) </span><span style="color: #0000ff">return</span><span style="color: #000000">;<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pImg</span><span style="color: #000000">-></span><span style="color: #000000">GetTransIndex() </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #000000">24</span><span style="color: #000000">)<br /><img id="Codehighlighter1_129_157_Open_Image" onclick="this.style.display='none'; Codehighlighter1_129_157_Open_Text.style.display='none'; Codehighlighter1_129_157_Closed_Image.style.display='inline'; Codehighlighter1_129_157_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_129_157_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_129_157_Closed_Text.style.display='none'; Codehighlighter1_129_157_Open_Image.style.display='inline'; Codehighlighter1_129_157_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif">    </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_129_157_Closed_Text"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_129_157_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />        pImg</span><span style="color: #000000">-></span><span style="color: #000000">IncreaseBpp(</span><span style="color: #000000">24</span><span style="color: #000000">);<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" />    }</span></span><span style="color: #000000"><br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />    pImg</span><span style="color: #000000">-></span><span style="color: #000000">SetTransIndex(</span><span style="color: #000000">0</span><span style="color: #000000">);<br /><img id="Codehighlighter1_204_215_Open_Image" onclick="this.style.display='none'; Codehighlighter1_204_215_Open_Text.style.display='none'; Codehighlighter1_204_215_Closed_Image.style.display='inline'; Codehighlighter1_204_215_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_204_215_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_204_215_Closed_Text.style.display='none'; Codehighlighter1_204_215_Open_Image.style.display='inline'; Codehighlighter1_204_215_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif">    RGBQUAD rgbTrans </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_204_215_Closed_Text"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_204_215_Open_Text"><span style="color: #000000">{B, G, R, </span><span style="color: #000000">0</span><span style="color: #000000">}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />    pImg</span><span style="color: #000000">-></span><span style="color: #000000">SetTransColor(rgbTrans);<br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" />}</span></span></div>緇忚繃榪欐牱璁劇疆閫忔槑鑹茬殑鍥?濡傛灉浣跨敤CxImage::Stretch榪涜緙╂斁緇樺埗,緇樺埗閫忔槑鑹插茍涓嶄細閫忔槑,鑰屼細鍘熸眮鍘熷懗鐨勫皢閫忔槑鑹插瀹炵殑緇樺埗涓婂幓,緇忚繃嫻嬭瘯,浣跨敤CxImage::Draw2榪欎釜鏂規硶緙╂斁緇樺埗鏄病鏈夐棶棰樼殑.<img src ="http://www.shnenglu.com/tx7do/aggbug/194161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-11-01 15:05 <a href="http://www.shnenglu.com/tx7do/archive/2012/11/01/194161.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>IOCP+UDP鏀跺寘鐨勬椂鍊?鎶?xC000000005錛岃鍙?x00000010閿欒鐨勯棶棰?/title><link>http://www.shnenglu.com/tx7do/archive/2012/10/15/193298.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Mon, 15 Oct 2012 03:42:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/10/15/193298.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/193298.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/10/15/193298.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/193298.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/193298.html</trackback:ping><description><![CDATA[鏈榪戝彂鐜版垜閭g畝鍗曞緱涓嶅啀綆鍗曠殑IOCP+UDP鐨勫簳灞傚嚭閿欎簡,鍦ㄥぇ鏁版嵁閲忕殑鏃跺欑粡甯鎬細鎶ラ敊,騫朵笖娓呬竴鑹查兘鏄姤鐨?鎶?xC000000005錛岃鍙?x00000010閿欒.鎶ラ敊涔嬪悗,鏁翠釜紼嬪簭鐨勫爢鏍堝氨鍏ㄩ儴鐮村潖鎺変簡.浠庡彂鐜伴棶棰樺埌浠婃棩闂鐨勮В鍐?宸茬粡榪囧幓浜嗕竴涓湀鐨勬椂闂?<br />鍞竴鑳藉鎵懼埌鐩稿叧鐨勮祫鏂欏彧鏈?<a href="http://www.shnenglu.com/HendricLee/archive/2008/07/29/57436.html">http://www.shnenglu.com/HendricLee/archive/2008/07/29/57436.html</a><br />浣嗘槸浜嬪疄涓?鎴戠殑Overlapped閮芥槸澶嶇敤鐨?鍥犳,涓嶅ぇ鍙兘鏄闂瀵艱嚧鐨?緇忚繃嫻嬭瘯璇佹槑,涔熺‘瀹炰笌姝ゆ棤鍏?<br />鏄ㄦ櫄涓婂張鍋氫簡涓緋誨垪鐨勬祴璇?緇撴灉鍒版渶鍚庝緷鏃ф槸鏃犳灉,鐧捐埇鏃犲涔嬩笅,鍙ソ闂漢,鍚庨潰QQ濂藉弸Sagasarate鍛婅瘔浜嗘垜鍘熷,鎴戠煡閬撲箣鍚?鍙湁涓ょ鎰熻:鎯沖摥,鎯蟲挒澧?<img border="0" alt="" src="http://www.shnenglu.com/Emoticons/QQ/02.gif" width="20" height="20" /><br />鑷充簬涓轟粈涔?璇風湅浠ヤ笅浠g爜渚跨煡浜?闈炲父闈炲父涔嬩綆綰х殑閿欒.<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">bool</span><span style="color: #000000"> CUDPRecvSendThread::postRecvRequest(CUdpOverLappedRecv</span><span style="color: #000000">*</span><span style="color: #000000"> pOverLappedRecv)<br /><img id="Codehighlighter1_78_626_Open_Image" onclick="this.style.display='none'; Codehighlighter1_78_626_Open_Text.style.display='none'; Codehighlighter1_78_626_Closed_Image.style.display='inline'; Codehighlighter1_78_626_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_78_626_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_78_626_Closed_Text.style.display='none'; Codehighlighter1_78_626_Open_Image.style.display='inline'; Codehighlighter1_78_626_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_78_626_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_78_626_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    ASSERT(pOverLappedRecv);<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pOverLappedRecv </span><span style="color: #000000">==</span><span style="color: #000000"> NULL) </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    pOverLappedRecv</span><span style="color: #000000">-></span><span style="color: #000000">Reset();<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    DWORD dwBytesRecv </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    DWORD dwFlags </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> nSenderAddrSize </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">sizeof</span><span style="color: #000000"> (sockaddr_in);<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> rc </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    rc </span><span style="color: #000000">=</span><span style="color: #000000"> ::WSARecvFrom(m_ServerSocket, pOverLappedRecv</span><span style="color: #000000">-></span><span style="color: #000000">GetWsaBuffer(), </span><span style="color: #000000">1</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">dwBytesRecv, </span><span style="color: #000000">&</span><span style="color: #000000">dwFlags,<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />        pOverLappedRecv</span><span style="color: #000000">-></span><span style="color: #000000">GetClientAddr(), &nSenderAddrSize,<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />        pOverLappedRecv</span><span style="color: #000000">-></span><span style="color: #000000">GetOverlapped(), NULL);<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (rc </span><span style="color: #000000">==</span><span style="color: #000000"> SOCKET_ERROR)<br /><img id="Codehighlighter1_501_609_Open_Image" onclick="this.style.display='none'; Codehighlighter1_501_609_Open_Text.style.display='none'; Codehighlighter1_501_609_Closed_Image.style.display='inline'; Codehighlighter1_501_609_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_501_609_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_501_609_Closed_Text.style.display='none'; Codehighlighter1_501_609_Open_Image.style.display='inline'; Codehighlighter1_501_609_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif">    </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_501_609_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_501_609_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />        DWORD dwErrorCode </span><span style="color: #000000">=</span><span style="color: #000000"> ::WSAGetLastError();<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (dwErrorCode </span><span style="color: #000000">!=</span><span style="color: #000000"> WSA_IO_PENDING)<br /><img id="Codehighlighter1_585_606_Open_Image" onclick="this.style.display='none'; Codehighlighter1_585_606_Open_Text.style.display='none'; Codehighlighter1_585_606_Closed_Image.style.display='inline'; Codehighlighter1_585_606_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_585_606_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_585_606_Closed_Text.style.display='none'; Codehighlighter1_585_606_Open_Image.style.display='inline'; Codehighlighter1_585_606_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedSubBlock.gif">        </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_585_606_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_585_606_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />        }</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>璇峰鐓х潃MSDN鐪?<br />濡傛灉娌$湅鍑烘潵,閭f垜鏉ュ憡璇変綘鏄負浠涔?<br />闂灝卞湪浜嶹SARecvFrom鐨?涓弬鏁?<br />MSDN鐨勬弿榪?<br /> <dt style="widows: 2; text-transform: none; text-indent: 0px; font: 12px/16px 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><em>lpFromlen</em><span id="o2uoogg" class="Apple-converted-space"> </span>[in, out] </dt><dd style="widows: 2; text-transform: none; text-indent: 0px; font: 12px/16px 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> <p style="padding-bottom: 15px; line-height: 18px; margin-top: 0px; margin-bottom: 0px; color: #2a2a2a">A pointer to the size, in bytes, of the "from" buffer required only if<span id="wg2iakk" class="Apple-converted-space"> </span><em>lpFrom</em><span id="42c4yww" class="Apple-converted-space"> </span>is specified.<br /></p></dd> <p style="widows: 2; text-transform: none; text-indent: 0px; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; line-height: 16px; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span style="font-size: 10pt; ">浣犱細鍙戠幇,榪欎釜鍙傛暟鏄竴涓緭鍏ヨ緭鍑哄?鑰學SARecvFrom鎶曢掔殑鏄竴涓紓姝ョ殑IOCP璇鋒眰,鏁呰?鍑轟簡姝ゆ柟娉?</span><span style="font-size: 12px;">CUDPRecvSendThread::postRecvRequest</span><span style="font-size: 10pt; ">)涔嬪悗,nSenderAddrSize榪欎釜涓存椂鍙橀噺灝變細琚洖鏀?涓嶅嚭浜嬫墠鎬簡.</span><br /><span style="font-size: 10pt; ">濂藉惂,榪欎簨灝辨槸鎴戝共鍑烘潵鐨?浠婂勾绔熸槸鍋氫竴浜涜剳孌嬬殑浜嬫儏.鑲夸箞浜嗘垜榪欐槸.T_T</span><br /><span style="font-size: 10pt; ">瑕佽В鍐寵繖涓棶棰?鏈濂界殑鍔炴硶灝辨槸鎶妌SenderAddrSize浣滀負CUdpOverLappedRecv鐨勬垚鍛樺彉閲忎繚瀛?榪欐牱鐢熷懡鍛ㄦ湡鍙互寰椾互淇濊瘉.</span><br /><span style="font-size: 10pt; ">濂藉惂,榪欎歡鑴戞畫浜嬪氨榪欎箞緇撲簡. </span></p><img src ="http://www.shnenglu.com/tx7do/aggbug/193298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-10-15 11:42 <a href="http://www.shnenglu.com/tx7do/archive/2012/10/15/193298.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢‵FMPEG SDK榪涜瑙嗛杞爜鍘嬬緝鏃惰В鍐抽煶瑙嗛涓嶅悓姝ラ棶棰樼殑鏂規硶http://www.shnenglu.com/tx7do/archive/2012/09/17/190953.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Mon, 17 Sep 2012 03:09:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/09/17/190953.htmlhttp://www.shnenglu.com/tx7do/comments/190953.htmlhttp://www.shnenglu.com/tx7do/archive/2012/09/17/190953.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/190953.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/190953.html杞澆鑷?http://blog.sina.com.cn/s/blog_6281e5750100vhn5.html

鐢‵FMPEG SDK榪涜瑙嗛杞爜鍘嬬緝鐨勬椂鍊欙紝杞爜鎴愬姛鍚庡幓鐪嬭棰戠殑鍐呭錛屽彂鐜伴煶瑙嗛鏄笉鍚屾鐨勩傝繖涓殑紜槸涓涓伡鐏殑浜嬫儏銆傛垜鍦ㄧ敤FFMPEG SDK鍋歨264鏍煎紡鐨凢LV鏂囦歡緙栫爜Filter鐨勬椂鍊欏氨紕板埌浜嗚繖涓棶棰樸?/p>

        緇忚繃鐮旂┒鍙戠幇錛孎FMPEG SDK鍐欏叆瑙嗛鐨勬椂鍊欐湁涓や釜鍦版柟鐢ㄦ潵鎺у埗鍐欏叆鐨勬椂闂存埑錛屼竴涓槸AvPacket, 涓涓槸AvFrame銆?鍦ㄨ皟鐢╝vcodec_encode_video鐨勬椂鍊欓渶瑕佷紶鍏vFrame鐨勫璞℃寚閽堬紝涔熷氨鏄紶鍏ヤ竴甯ф湭鍘嬬緝鐨勮棰戣繘琛屽帇緙╁鐞嗭紝AvFrame鍖呭惈涓涓猵ts鐨勫弬鏁幫紝榪欎釜鍙傛暟灝辨槸褰撳墠甯у皢鏉ュ湪榪樺師鎾斁鐨勬椂鍊欑殑鏃墮棿鎴熾傝孉vPacket閲岄潰涔熸湁pts錛岃繕鏈塪ts銆傝璧瘋繖涓氨蹇呴』瑕佽鏄庝竴涓婭,P,B涓夌瑙嗛鍘嬬緝甯с侷甯у氨鏄叧閿撫錛屼笉渚濊禆浜庡叾浠栬棰戝撫錛孭甯ф槸鍚戝墠棰勬祴鐨勫撫錛屽彧渚濊禆浜庡墠闈㈢殑瑙嗛甯э紝鑰孊甯ф槸鍙屽悜棰勬祴瑙嗛甯э紝渚濊禆浜庡墠鍚庤棰戝撫銆傜敱浜嶣甯х殑瀛樺湪錛屽洜涓哄畠鏄弻鍚戠殑錛屽繀欏葷煡閬撳墠闈㈢殑瑙嗛甯у拰鍚庨潰鐨勮棰戝撫鐨勮緇嗗唴瀹瑰悗錛屾墠鑳界煡閬撴湰B甯ф渶緇堣鍛堢幇浠涔堝浘鍍忋傝宲ts鍜宒ts涓や釜鍙傛暟灝辨槸鐢ㄦ潵鎺у埗瑙嗛甯х殑鏄劇ず鍜岃В鐮佺殑欏哄簭銆?/p>

      pts灝辨槸甯ф樉紺虹殑欏哄簭銆?/p>

      dts灝辨槸甯ц璇誨彇榪涜瑙g爜鐨勯『搴忋?/p>

     濡傛灉娌℃湁B甯у瓨鍦紝dts鍜宲ts鏄浉鍚岀殑銆傚弽涔嬶紝鍒欐槸涓嶇浉鍚岀殑銆傚叧浜庤繖涓殑璇︾粏浠嬬粛鍙互鍙傝冧竴涓媘peg鐨勫師鐞嗐?/p>

鍐嶈璇碅vPacket涓寘鍚殑pts鍜宒ts涓や釜鍒板簳璇ヨ緗粈涔堝鹼紵

pts鍜宒ts闇瑕佽緗殑灝辨槸瑙嗛甯цВ鐮佸拰鏄劇ず鐨勯『搴忋傛瘡澧炲姞涓甯у氨鍔犱竴錛屽茍涓嶆槸鎾斁瑙嗛鐨勬椂闂存埑銆?/p>

浣嗘槸瀹炶返璇佹槑緇忚繃rmvb瑙g爜鐨勮棰戞湁鏃跺欏茍涓嶆槸鍥哄畾甯х巼鐨勶紝鑰屾槸鍙樺撫鐜囩殑錛岃繖鏍鳳紝濡傛灉姣忓帇緙╀竴甯э紝pts鍜宒ts鍔犱竴鐨勬柟妗堜負瀵艱嚧闊寵棰戜笉鍚屾銆?/p>

閭f庝箞鏉ヨВ鍐抽煶瑙嗛鍚屾鐨勯棶棰樺憿錛?/p>

璇風湅濡備笅浠g爜孌點?/p>

lTimeStamp 鏄氳繃directshow 鑾峰彇鐨勫綋鍓嶇殑瑙嗛甯х殑鏃墮棿鎴熾?/p>

m_llframe_index涓哄綋鍓嶅凡緇忕粡榪囧帇緙╁鐞嗙殑甯х殑鏁伴噺銆?/p>

棣栧厛av_rescale璁$畻寰楀埌褰撳墠鍘嬬緝澶勭悊宸茬粡闇瑕佸鐞嗕粈涔堟椂闂存埑鐨勮棰戝撫錛屽鏋滆鏃墮棿鎴沖皻鏈埌杈綿irectshow褰撳墠鎻愪緵鐨勮棰戝撫鐨勬椂闂存埑錛屽垯灝嗚甯т涪寮冩帀銆?/p>

鍚﹀垯榪涜鍘嬬緝鎿嶄綔銆傚茍璁劇疆AVPacket鐨刾ts鍜宒ts銆傝繖閲屽亣璁綛甯т笉瀛樺湪銆?/p>

鍥犱負鍦ㄥ皢鏉ユ挱鏀劇殑鏃跺欒棰戜互鎴戜滑璁懼畾鐨勫浐瀹氭挱鏀懼撫鐜囪繘琛屾挱鏀撅紝鎵浠ラ渶瑕佹牴鎹瀹氱殑鎾斁甯х巼璁$畻寰楀埌鐨勮棰戝撫鏃墮棿鎴沖拰directshow鎻愪緵鐨勫綋鍓嶈棰戝撫鐨勬椂闂存埑榪涜姣旇緝錛岃瀹氭槸鍚﹂渶瑕佽繘琛屽疄鏂藉歡緙撴挱鏀劇殑絳栫暐銆傚鏋滈渶瑕佸歡緙撴挱鏀撅紝鍒欏皢pts澧炲姞姝ラ暱2錛屽惁鍒欎互鏅氶熷害鎾斁錛屽垯璁劇疆涓?.dts涓庝箣鐩稿悓銆?/p>

__int64 x = av_rescale(m_llframe_index,AV_TIME_BASE*(int64_t)c->time_base.num,c->time_base.den);

if( x > lTimeStamp )
{
return TRUE;
}

m_pVideoFrame2
->pts = lTimeStamp;
m_pVideoFrame2
->pict_type = 0;

int out_size = avcodec_encode_video( c, m_pvideo_outbuf, video_outbuf_size, m_pVideoFrame2 );

if (out_size > 0)
{
AVPacket pkt;
av_init_packet(
&pkt);

if( x > lTimeStamp )
{
   pkt.pts 
= pkt.dts = m_llframe_index;
   pkt.duration 
= 0;
}

else
{
   pkt.duration 
= (lTimeStamp - x)*c->time_base.den/1000000 + 1;
   pkt.pts 
= m_llframe_index;
   pkt.dts 
= pkt.pts;
   m_llframe_index 
+= pkt.duration;
}


//pkt.pts = lTimeStamp * (__int64)frame_rate.den / 1000;
if( c->coded_frame && c->coded_frame->key_frame )
{
    pkt.flags 
|= PKT_FLAG_KEY;
}


pkt.stream_index
= m_pVideoStream->index;
pkt.data
= m_pvideo_outbuf;
pkt.size
= out_size;


ret 
= av_interleaved_write_frame( m_pAvFormatContext, &pkt );
}

else
{
ret 
= 0;
}


 



]]>
鍩轟簬Directshow妗嗘灦浣跨敤Windows娓叉煋鍣╒MR鍙犲姞姘村嵃http://www.shnenglu.com/tx7do/archive/2012/09/17/190951.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Mon, 17 Sep 2012 03:06:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/09/17/190951.htmlhttp://www.shnenglu.com/tx7do/comments/190951.htmlhttp://www.shnenglu.com/tx7do/archive/2012/09/17/190951.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/190951.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/190951.htmlhttp://blog.sina.com.cn/s/blog_6281e5750100xdnj.html

瀵逛簬windows緋葷粺錛孍VR/VMR9/VMR娓叉煋鍣ㄥ潎鎻愪緵浜嗗彔鍔犻潤鎬佸浘鐗囩殑鎺ュ彛錛?br />SetAlphaBitmap錛堬級錛?br /> 
姝ゆ帴鍙f敮鎸侀潤鎬佸浘鐗囩殑璧勬簮浣跨敤鏂瑰紡錛屼竴縐嶆槸HDC錛屼竴縐嶆槸SURFACE錛?br />浣跨敤鍙戠幇錛屽鏋滈潤鎬佸浘鐗囦笉瑙勫垯錛屾槸鏈堿lpha閫氶亾鐨勪笉鍚屽彇鍊煎艦鎴愶紝
鍒欓氳繃HDC鍙犲姞鐨勪細鏈夐粦杈瑰瓨鍦紱
 
瀵逛簬EVR/VMR9鍙噰鐢⊿URFACE錛屼嬌鐢―3D鍒涘緩錛屽畬緹庢按鍗版晥鏋滅浉瀵瑰鏄撳疄鐜幫紝鐣ヨ繃錛?br />瀵逛簬VMR娓叉煋鍣紝SURFACE闇瑕佸熀浜嶥irectDraw鍒涘緩紱誨睆琛ㄩ潰錛?br /> 
紱誨睆琛ㄩ潰鍒涘緩鍚庯紝闈欐佸浘鐗囨暟鎹嬌鐢ㄥ喅瀹氱潃鏄惁鑳藉畬緹庡憟鐜版按鍗版晥鏋滐紱
涓縐嶆槸閫氳繃紱誨睆琛ㄩ潰鑾峰彇HDC錛屾搷浣淗DC錛屾妸闈欐佸浘鐗囬檮鍔犵粰紱誨睆琛ㄩ潰錛?br />涓縐嶆槸閫氳繃鐩存帴鎿嶄綔紱誨睆琛ㄩ潰鐨勫唴瀛樻暟鎹湴鍧錛?br /> 
緇忚繃鍑犲ぉ鐨勬懜绱紝瀹炵幇浜嗘瘮杈冨畬緹庣殑姘村嵃鏁堟灉錛屼唬鐮佸涓嬶細
LPDIRECTDRAW7 lpDDraw7;
 
  
if(FAILED(DirectDrawCreateEx(NULL, (LPVOID *)&lpDDraw7, IID_IDirectDraw7, NULL)))
  
{
   
return ;
  }

 
if (FAILED(lpDDraw7->SetCooperativeLevel(m_hShowWin, DDSCL_NORMAL)))
 
{
  
return ;
 }

 
 DDSURFACEDESC2 ddsd;
 ZeroMemory(
&ddsd, sizeof(ddsd));
   ddsd.dwSize 
= sizeof(ddsd);
   ddsd.dwFlags 
= DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
   ddsd.ddsCaps.dwCaps 
= DDSCAPS_OFFSCREENPLAIN;
   ddsd.dwWidth 
= xs;
 ddsd.dwHeight 
= ys;
  ddsd.ddpfPixelFormat.dwSize 
=sizeof(DDPIXELFORMAT);
  ddsd.ddpfPixelFormat.dwFlags 
=DDPF_RGB | DDPF_ALPHAPIXELS;
  ddsd.ddpfPixelFormat.dwRGBBitCount 
=32;
   ddsd.ddpfPixelFormat.dwRBitMask
=0x00ff0000;
   ddsd.ddpfPixelFormat.dwGBitMask
=0x0000ff00;
   ddsd.ddpfPixelFormat.dwBBitMask
=0x000000ff;
 ddsd.ddpfPixelFormat.dwRGBAlphaBitMask
=0xff000000;
  
if(FAILED(lpDDraw7->CreateSurface(&ddsd, lpSource, NULL)))
 
{
  
return ;
 }

 
 
lpSurface
->Restore();
  CImage img;
  HRESULT result;
  result 
= img.Load(_bstr_t(path));
  
if(!SUCCEEDED(result))
   
return ;
  LPBYTE lpBits 
= (LPBYTE)img.GetBits();
  
int nPitch = img.GetPitch();
  
int imgWidth = img.GetWidth();
  
int bpp = img.GetBPP();
  
if(bpp != 24 && bpp != 32)
   
return ;
 
  DDSURFACEDESC2 dds;
  ZeroMemory(
&dds,0,sizeof(dds));
  dds.dwSize   
=   sizeof(dds);
  
if(DD_OK != lpSurface->Lock(NULL, &dds, DDLOCK_WAIT, NULL))
   
return;
 
  LPBYTE dest 
= (LPBYTE)dds.lpSurface;
  
forint yPos = 0; yPos < img.GetHeight(); yPos++)
  
{
   LPBYTE lpBytes 
= lpBits + ( yPos * nPitch );
   
int width = img.GetWidth( ) * (bpp / 8);
 
   
forint xPos = 0; xPos < width; )
   
{
    
if(bpp == 24)
    
{
 
     
*dest++ = lpBytes[xPos ];
     
*dest++ = lpBytes[xPos + 1];
     
*dest++ = lpBytes[xPos + 2];
     
*dest++ = 0xff;
 
     xPos 
+= 3 ;
    }

    
else if(bpp == 32)
    
{
     
*dest++ = lpBytes[xPos];
     xPos 
++;
    }

   }

 
   dest 
+= dds.lPitch - width;
  }

  lpSurface
->Unlock(NULL);
闈欐佸浘鐗囩殑鏁版嵁璧嬬粰紱誨睆琛ㄩ潰錛屼笂闈唬鐮侀噰鐢ㄧ殑鏄搷浣滃唴瀛樼殑鏂瑰紡錛屽鏋滈噰鐢?br />lpSurface->GetDc(&hdc)鐨勬柟寮忥紝鐒跺悗閫氳繃BitBlt鏂瑰紡緇樺埗鐨勮瘽錛宎lpha閫氶亾浼氫涪澶憋紝杈句笉鍒版按鍗扮殑瀹岀編鍛堢幇

]]>
鍦╝ctivex鎺т歡宸ョ▼涓嬌鐢╠irectshow,緙栬瘧鏃秎ink閿欒鐨勮В鍐蟲柟娉?/title><link>http://www.shnenglu.com/tx7do/archive/2012/08/17/187492.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 17 Aug 2012 09:01:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/08/17/187492.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/187492.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/08/17/187492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/187492.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/187492.html</trackback:ping><description><![CDATA[<div><strong style="color: red">杞澆鑷?</strong><a style="color: red" ><strong>http://www.wangchao.net.cn/bbsdetail_839548.html</strong></a><br /><br /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">閿欒涓猴細 <br />strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (<a href="mailto:g_Templates@@3PAVCFactoryTemplate@@A">g_Templates@@3PAVCFactoryTemplate@@A</a>) <br />strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (<a href='mailto:g_cTemplates@@3HA"g_cTemplates@@3HA'>g_cTemplates@@3HA"g_cTemplates@@3HA</a>)</span><br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/25px simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">鍘熷洜濂藉儚鍑哄湪鏍囧噯C涓婏紝涓庣敤鎴蜂唬鐮佹棤鍏熾?/span><br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/25px simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">----------------------------瑙e喅鏂規--------------------------------------<br />鍔犲叆<span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">涓嬮潰鍔犱笂浠ヤ笅浠g爜,閲嶆柊緙栬瘧鍗沖彲. <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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_2_80_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_80_Open_Text.style.display='none'; Codehighlighter1_2_80_Closed_Image.style.display='inline'; Codehighlighter1_2_80_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_2_80_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2_80_Closed_Text.style.display='none'; Codehighlighter1_2_80_Open_Image.style.display='inline'; Codehighlighter1_2_80_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #000000">銆銆</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2_80_Closed_Text">/**/</span><span id="Codehighlighter1_2_80_Open_Text"><span style="color: #808080">///////////////////////////////////////////////////////////////////////////</span><span style="color: #008000">// </span><span style="color: #808080"></span></span><br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #000000">銆銆</span><span style="color: #008000">//</span><span style="color: #008000"> DllGetClassObject </span><span style="color: #008000"><br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" /></span><span style="color: #000000">銆銆</span><span style="color: #0000ff">extern</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">C</span><span style="color: #000000">"</span><span style="color: #000000"> <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" />銆銆STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID</span><span style="color: #000000">*</span><span style="color: #000000"> ppv) <br /><img id="Codehighlighter1_192_296_Open_Image" onclick="this.style.display='none'; Codehighlighter1_192_296_Open_Text.style.display='none'; Codehighlighter1_192_296_Closed_Image.style.display='inline'; Codehighlighter1_192_296_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_192_296_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_192_296_Closed_Text.style.display='none'; Codehighlighter1_192_296_Open_Image.style.display='inline'; Codehighlighter1_192_296_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif">銆銆</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_192_296_Closed_Text"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_192_296_Open_Text"><span style="color: #000000">{ <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />銆銆AFX_MANAGE_STATE(AfxGetStaticModuleState()); <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />銆銆</span><span style="color: #0000ff">return</span><span style="color: #000000"> AfxDllGetClassObject(rclsid, riid, ppv); <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" />銆銆}</span></span><span style="color: #000000"> <br /><img id="Codehighlighter1_301_379_Open_Image" onclick="this.style.display='none'; Codehighlighter1_301_379_Open_Text.style.display='none'; Codehighlighter1_301_379_Closed_Image.style.display='inline'; Codehighlighter1_301_379_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_301_379_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_301_379_Closed_Text.style.display='none'; Codehighlighter1_301_379_Open_Image.style.display='inline'; Codehighlighter1_301_379_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif">銆銆</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_301_379_Closed_Text">/**/</span><span id="Codehighlighter1_301_379_Open_Text"><span style="color: #808080">///////////////////////////////////////////////////////////////////////////</span><span style="color: #008000">// </span><span style="color: #808080"></span></span><br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #000000">銆銆</span><span style="color: #008000">//</span><span style="color: #008000"> DllCanUnloadNow </span><span style="color: #008000"><br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" /></span><span style="color: #000000">銆銆</span><span style="color: #0000ff">extern</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">C</span><span style="color: #000000">"</span><span style="color: #000000"> <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" alt="" />銆銆STDAPI DllCanUnloadNow(</span><span style="color: #0000ff">void</span><span style="color: #000000">) <br /><img id="Codehighlighter1_450_535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_450_535_Open_Text.style.display='none'; Codehighlighter1_450_535_Closed_Image.style.display='inline'; Codehighlighter1_450_535_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_450_535_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_450_535_Closed_Text.style.display='none'; Codehighlighter1_450_535_Open_Image.style.display='inline'; Codehighlighter1_450_535_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif">銆銆</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_450_535_Closed_Text"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_450_535_Open_Text"><span style="color: #000000">{ <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />銆銆AFX_MANAGE_STATE(AfxGetStaticModuleState()); <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" alt="" />銆銆</span><span style="color: #0000ff">return</span><span style="color: #000000"> AfxDllCanUnloadNow(); <br /><img align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" />銆銆}</span></span><span style="color: #000000"> <br /><img id="Codehighlighter1_540_616_Open_Image" onclick="this.style.display='none'; Codehighlighter1_540_616_Open_Text.style.display='none'; Codehighlighter1_540_616_Closed_Image.style.display='inline'; Codehighlighter1_540_616_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_540_616_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_540_616_Closed_Text.style.display='none'; Codehighlighter1_540_616_Open_Image.style.display='inline'; Codehighlighter1_540_616_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif">銆銆</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_540_616_Closed_Text">/**/</span><span id="Codehighlighter1_540_616_Open_Text"><span style="color: #808080">///////////////////////////////////////////////////////////////////////////</span><span style="color: #008000">/</span></div></span><br /><br /></span><br /></span></div><img src ="http://www.shnenglu.com/tx7do/aggbug/187492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-08-17 17:01 <a href="http://www.shnenglu.com/tx7do/archive/2012/08/17/187492.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦╓indows涓嬬紪璇戞渶鏂扮増鏈殑Libjinglehttp://www.shnenglu.com/tx7do/archive/2012/07/18/184081.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Wed, 18 Jul 2012 09:02:00 GMThttp://www.shnenglu.com/tx7do/archive/2012/07/18/184081.htmlhttp://www.shnenglu.com/tx7do/comments/184081.htmlhttp://www.shnenglu.com/tx7do/archive/2012/07/18/184081.html#Feedback0http://www.shnenglu.com/tx7do/comments/commentRss/184081.htmlhttp://www.shnenglu.com/tx7do/services/trackbacks/184081.html闃呰鍏ㄦ枃

]]>
IOCP鍖呰9綾?/title><link>http://www.shnenglu.com/tx7do/archive/2012/07/16/183777.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Mon, 16 Jul 2012 10:38:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/07/16/183777.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/183777.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/07/16/183777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/183777.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/183777.html</trackback:ping><description><![CDATA[澶存枃浠訛細<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">/*</span><span style="color: #008000">*********************************************************************<br />* Copyright (C) 2008 -  - All Rights Reserved<br />*<br />* 鏂囦歡鍚嶇О:        IOCP.h<br />* 鎽?nbsp;   瑕?        IOCP鍖呰9綾?br />*     <br />* 浣?nbsp;   鑰?        yanglinbo, <br />* 淇?nbsp;   鏀?        鏌ョ湅鏂囦歡鏈涓嬫柟.<br />* <br />**********************************************************************</span><span style="color: #008000">*/</span><br /><br />#ifndef __IOCP_H__<br /><span style="color: #0000ff">#define</span> __IOCP_H__<br /><br /><br />#include <assert.h><br />#include <WinSock2.h><br /><br /><br /><span style="color: #808080">////////////////////////////////////////////////////////////////////////</span><span style="color: #008000">//<br /></span><span style="color: #808080">///</span><span style="color: #008000"> IOCP鍖呰綾伙紝瀹屾垚IOCP鍒涘緩錛屽叧鑱旂瓑鍔ㄤ綔<br /></span><span style="color: #808080">////////////////////////////////////////////////////////////////////////</span><span style="color: #008000">//</span><span style="color: #808080"><br /></span><span style="color: #0000ff">class</span> CIOCP<br />{<br /><span style="color: #0000ff">public</span>:<br />    CIOCP(<span style="color: #0000ff">int</span> nMaxConcurrency = -1);<br />    <span style="color: #0000ff">virtual</span> ~CIOCP(<span style="color: #0000ff">void</span>);<br /><br />    CIOCP& <span style="color: #0000ff">operator</span> = (<span style="color: #0000ff">const</span> CIOCP& rht);<br />    CIOCP& <span style="color: #0000ff">operator</span> = (<span style="color: #0000ff">const</span> HANDLE& rht);<br /><br />    <span style="color: #0000ff">operator</span> HANDLE() <span style="color: #0000ff">const</span>;<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 鍒涘緩IOCP<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] nMaxConcurrency 鏈澶х嚎紼嬫暟</span><span style="color: #808080"><br /></span>    BOOL Create(<span style="color: #0000ff">int</span> nMaxConcurrency);<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 閿姣両OCP</span><span style="color: #808080"><br /></span>    BOOL Destroy();<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 瀹屽叏绔彛鏄惁鏈夋晥</span><span style="color: #808080"><br /></span>    BOOL IsValid() <span style="color: #0000ff">const</span>;<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 鍏寵仈鎸囧畾SOCKET鍙婂弬鏁板埌IOCP<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] socket<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] CompKey</span><span style="color: #808080"><br /></span>    BOOL AssociateSocket(SOCKET socket, ULONG_PTR CompKey);<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 鍙戦侀氱煡鍒癐OCP<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] CompKey<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] dwNumBytes<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] po</span><span style="color: #808080"><br /></span>    BOOL PostStatus(ULONG_PTR CompKey, DWORD dwNumBytes = 0, OVERLAPPED* po = NULL);<br /><br />    <span style="color: #808080">///</span><span style="color: #008000"> 鍙栧緱IOCP鐘舵?br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] pCompKey<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] pdwNumBytes<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] ppo<br />    </span><span style="color: #808080">///</span><span style="color: #008000"> @param [in] dwMilliseconds</span><span style="color: #808080"><br /></span>    BOOL GetStatus(ULONG_PTR* pCompKey, PDWORD pdwNumBytes, OVERLAPPED** ppo, DWORD dwMilliseconds = INFINITE);<br /><br /><span style="color: #0000ff">private</span>:<br />    HANDLE        m_hIOCP;    <span style="color: #808080">///</span><span style="color: #808080">< IOCP鍙ユ焺<br /></span><span style="color: #008000">};</span><span style="color: #808080"><br /></span><br /><br /><span style="color: #0000ff">#endif</span></div><br /><br />cpp鏂囦歡錛?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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_0_281_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_281_Open_Text.style.display='none'; Codehighlighter1_0_281_Closed_Image.style.display='inline'; Codehighlighter1_0_281_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_0_281_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_0_281_Closed_Text.style.display='none'; Codehighlighter1_0_281_Open_Image.style.display='inline'; Codehighlighter1_0_281_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_0_281_Closed_Text">/**/</span><span id="Codehighlighter1_0_281_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">*********************************************************************<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* Copyright (C) 2008 -  - All Rights Reserved<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />*<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* 鏂囦歡鍚嶇О:        IOCP.cpp<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* 鎽?nbsp;   瑕?        IOCP鍖呰9綾?br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />*     <br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* 浣?nbsp;   鑰?        yanglinbo, <br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* 淇?nbsp;   鏀?        鏌ョ湅鏂囦歡鏈涓嬫柟.<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />* <br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />**********************************************************************</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />#include </span><span style="color: #000000">"</span><span style="color: #000000">StdAfx.h</span><span style="color: #000000">"</span><span style="color: #000000"> <br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />#include </span><span style="color: #000000">"</span><span style="color: #000000">IOCP.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img id="Codehighlighter1_359_366_Open_Image" onclick="this.style.display='none'; Codehighlighter1_359_366_Open_Text.style.display='none'; Codehighlighter1_359_366_Closed_Image.style.display='inline'; Codehighlighter1_359_366_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_359_366_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_359_366_Closed_Text.style.display='none'; Codehighlighter1_359_366_Open_Image.style.display='inline'; Codehighlighter1_359_366_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif">CIOCP::CIOCP( </span><span style="color: #0000ff">int</span><span style="color: #000000"> nMaxConcurrency </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_359_366_Closed_Text">/**/</span><span id="Codehighlighter1_359_366_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">= -1</span><span style="color: #008000">*/</span></span><span style="color: #000000"> )<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />: m_hIOCP(INVALID_HANDLE_VALUE)<br /><img id="Codehighlighter1_402_465_Open_Image" onclick="this.style.display='none'; Codehighlighter1_402_465_Open_Text.style.display='none'; Codehighlighter1_402_465_Closed_Image.style.display='inline'; Codehighlighter1_402_465_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_402_465_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_402_465_Closed_Text.style.display='none'; Codehighlighter1_402_465_Open_Image.style.display='inline'; Codehighlighter1_402_465_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_402_465_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_402_465_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (nMaxConcurrency </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)<br /><img id="Codehighlighter1_433_463_Open_Image" onclick="this.style.display='none'; Codehighlighter1_433_463_Open_Text.style.display='none'; Codehighlighter1_433_463_Closed_Image.style.display='inline'; Codehighlighter1_433_463_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_433_463_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_433_463_Closed_Text.style.display='none'; Codehighlighter1_433_463_Open_Image.style.display='inline'; Codehighlighter1_433_463_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_433_463_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_433_463_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />        Create(nMaxConcurrency);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />CIOCP::</span><span style="color: #000000">~</span><span style="color: #000000">CIOCP( </span><span style="color: #0000ff">void</span><span style="color: #000000"> )<br /><img id="Codehighlighter1_490_504_Open_Image" onclick="this.style.display='none'; Codehighlighter1_490_504_Open_Text.style.display='none'; Codehighlighter1_490_504_Closed_Image.style.display='inline'; Codehighlighter1_490_504_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_490_504_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_490_504_Closed_Text.style.display='none'; Codehighlighter1_490_504_Open_Image.style.display='inline'; Codehighlighter1_490_504_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_490_504_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_490_504_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    Destroy();<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />CIOCP</span><span style="color: #000000">&</span><span style="color: #000000"> CIOCP::</span><span style="color: #0000ff">operator</span><span style="color: #000000">=</span><span style="color: #000000">( </span><span style="color: #0000ff">const</span><span style="color: #000000"> CIOCP</span><span style="color: #000000">&</span><span style="color: #000000"> rht )<br /><img id="Codehighlighter1_551_592_Open_Image" onclick="this.style.display='none'; Codehighlighter1_551_592_Open_Text.style.display='none'; Codehighlighter1_551_592_Closed_Image.style.display='inline'; Codehighlighter1_551_592_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_551_592_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_551_592_Closed_Text.style.display='none'; Codehighlighter1_551_592_Open_Image.style.display='inline'; Codehighlighter1_551_592_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_551_592_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_551_592_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    m_hIOCP </span><span style="color: #000000">=</span><span style="color: #000000"> rht.m_hIOCP;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #0000ff">this</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />CIOCP</span><span style="color: #000000">&</span><span style="color: #000000"> CIOCP::</span><span style="color: #0000ff">operator</span><span style="color: #000000">=</span><span style="color: #000000">( </span><span style="color: #0000ff">const</span><span style="color: #000000"> HANDLE</span><span style="color: #000000">&</span><span style="color: #000000"> rht )<br /><img id="Codehighlighter1_640_673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_640_673_Open_Text.style.display='none'; Codehighlighter1_640_673_Closed_Image.style.display='inline'; Codehighlighter1_640_673_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_640_673_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_640_673_Closed_Text.style.display='none'; Codehighlighter1_640_673_Open_Image.style.display='inline'; Codehighlighter1_640_673_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_640_673_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_640_673_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    m_hIOCP </span><span style="color: #000000">=</span><span style="color: #000000"> rht;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #0000ff">this</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />CIOCP::</span><span style="color: #0000ff">operator</span><span style="color: #000000"> HANDLE() </span><span style="color: #0000ff">const</span><span style="color: #000000"><br /><img id="Codehighlighter1_707_758_Open_Image" onclick="this.style.display='none'; Codehighlighter1_707_758_Open_Text.style.display='none'; Codehighlighter1_707_758_Closed_Image.style.display='inline'; Codehighlighter1_707_758_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_707_758_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_707_758_Closed_Text.style.display='none'; Codehighlighter1_707_758_Open_Image.style.display='inline'; Codehighlighter1_707_758_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_707_758_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_707_758_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> (HANDLE)(</span><span style="color: #0000ff">this</span><span style="color: #000000"> </span><span style="color: #000000">==</span><span style="color: #000000"> NULL </span><span style="color: #000000">?</span><span style="color: #000000"> NULL : m_hIOCP);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />BOOL CIOCP::Create( </span><span style="color: #0000ff">int</span><span style="color: #000000"> nMaxConcurrency )<br /><img id="Codehighlighter1_803_929_Open_Image" onclick="this.style.display='none'; Codehighlighter1_803_929_Open_Text.style.display='none'; Codehighlighter1_803_929_Closed_Image.style.display='inline'; Codehighlighter1_803_929_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_803_929_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_803_929_Closed_Text.style.display='none'; Codehighlighter1_803_929_Open_Image.style.display='inline'; Codehighlighter1_803_929_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_803_929_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_803_929_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    m_hIOCP </span><span style="color: #000000">=</span><span style="color: #000000"> ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, </span><span style="color: #000000">0</span><span style="color: #000000">, nMaxConcurrency);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    ASSERT(IsValid());<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> IsValid();<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />BOOL CIOCP::Destroy()<br /><img id="Codehighlighter1_954_1086_Open_Image" onclick="this.style.display='none'; Codehighlighter1_954_1086_Open_Text.style.display='none'; Codehighlighter1_954_1086_Closed_Image.style.display='inline'; Codehighlighter1_954_1086_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_954_1086_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_954_1086_Closed_Text.style.display='none'; Codehighlighter1_954_1086_Open_Image.style.display='inline'; Codehighlighter1_954_1086_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_954_1086_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_954_1086_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (IsValid() </span><span style="color: #000000">==</span><span style="color: #000000"> FALSE) </span><span style="color: #0000ff">return</span><span style="color: #000000"> TRUE;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    BOOL bClosed </span><span style="color: #000000">=</span><span style="color: #000000"> ::CloseHandle(m_hIOCP);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    m_hIOCP </span><span style="color: #000000">=</span><span style="color: #000000"> INVALID_HANDLE_VALUE;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> bClosed;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />BOOL CIOCP::AssociateSocket( SOCKET socket, ULONG_PTR CompKey )<br /><img id="Codehighlighter1_1153_1291_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1153_1291_Open_Text.style.display='none'; Codehighlighter1_1153_1291_Closed_Image.style.display='inline'; Codehighlighter1_1153_1291_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1153_1291_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1153_1291_Closed_Text.style.display='none'; Codehighlighter1_1153_1291_Open_Image.style.display='inline'; Codehighlighter1_1153_1291_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1153_1291_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_1153_1291_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    ASSERT(IsValid());<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( IsValid() == FALSE ) </span><span style="color: #0000ff">return</span><span style="color: #000000"> FALSE;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> (::CreateIoCompletionPort((HANDLE)socket, m_hIOCP, CompKey, </span><span style="color: #000000">0</span><span style="color: #000000">) </span><span style="color: #000000">==</span><span style="color: #000000"> m_hIOCP);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img id="Codehighlighter1_1354_1360_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1354_1360_Open_Text.style.display='none'; Codehighlighter1_1354_1360_Closed_Image.style.display='inline'; Codehighlighter1_1354_1360_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1354_1360_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1354_1360_Closed_Text.style.display='none'; Codehighlighter1_1354_1360_Open_Image.style.display='inline'; Codehighlighter1_1354_1360_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif">BOOL CIOCP::PostStatus( ULONG_PTR CompKey, DWORD dwNumBytes </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1354_1360_Closed_Text">/**/</span><span id="Codehighlighter1_1354_1360_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">= 0</span><span style="color: #008000">*/</span></span><span style="color: #000000">, OVERLAPPED</span><span style="color: #000000">*</span><span style="color: #000000"> po </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1378_1387_Closed_Text">/**/</span><span id="Codehighlighter1_1378_1387_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">= NULL</span><span style="color: #008000">*/</span></span><span style="color: #000000"> )<br /><img id="Codehighlighter1_1391_1517_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1391_1517_Open_Text.style.display='none'; Codehighlighter1_1391_1517_Closed_Image.style.display='inline'; Codehighlighter1_1391_1517_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1391_1517_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1391_1517_Closed_Text.style.display='none'; Codehighlighter1_1391_1517_Open_Image.style.display='inline'; Codehighlighter1_1391_1517_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1391_1517_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_1391_1517_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    ASSERT(IsValid());<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( IsValid() == FALSE ) </span><span style="color: #0000ff">return</span><span style="color: #000000"> FALSE;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> ::PostQueuedCompletionStatus(m_hIOCP, dwNumBytes, CompKey, po);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img id="Codehighlighter1_1623_1636_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1623_1636_Open_Text.style.display='none'; Codehighlighter1_1623_1636_Closed_Image.style.display='inline'; Codehighlighter1_1623_1636_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1623_1636_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1623_1636_Closed_Text.style.display='none'; Codehighlighter1_1623_1636_Open_Image.style.display='inline'; Codehighlighter1_1623_1636_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif">BOOL CIOCP::GetStatus( ULONG_PTR</span><span style="color: #000000">*</span><span style="color: #000000"> pCompKey, PDWORD pdwNumBytes, OVERLAPPED</span><span style="color: #000000">**</span><span style="color: #000000"> ppo, DWORD dwMilliseconds </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1623_1636_Closed_Text">/**/</span><span id="Codehighlighter1_1623_1636_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">= INFINITE</span><span style="color: #008000">*/</span></span><span style="color: #000000"> )<br /><img id="Codehighlighter1_1640_1784_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1640_1784_Open_Text.style.display='none'; Codehighlighter1_1640_1784_Closed_Image.style.display='inline'; Codehighlighter1_1640_1784_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1640_1784_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1640_1784_Closed_Text.style.display='none'; Codehighlighter1_1640_1784_Open_Image.style.display='inline'; Codehighlighter1_1640_1784_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1640_1784_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_1640_1784_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    ASSERT(IsValid());<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> ( IsValid() == FALSE ) </span><span style="color: #0000ff">return</span><span style="color: #000000"> FALSE;<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> ::GetQueuedCompletionStatus(m_hIOCP, pdwNumBytes, pCompKey, ppo, dwMilliseconds);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" />BOOL CIOCP::IsValid() </span><span style="color: #0000ff">const</span><span style="color: #000000"><br /><img id="Codehighlighter1_1815_1881_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1815_1881_Open_Text.style.display='none'; Codehighlighter1_1815_1881_Closed_Image.style.display='inline'; Codehighlighter1_1815_1881_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1815_1881_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1815_1881_Closed_Text.style.display='none'; Codehighlighter1_1815_1881_Open_Image.style.display='inline'; Codehighlighter1_1815_1881_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1815_1881_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_1815_1881_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> (m_hIOCP </span><span style="color: #000000">!=</span><span style="color: #000000"> NULL) </span><span style="color: #000000">&&</span><span style="color: #000000"> (m_hIOCP </span><span style="color: #000000">!=</span><span style="color: #000000"> INVALID_HANDLE_VALUE);<br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" /></span></div><img src ="http://www.shnenglu.com/tx7do/aggbug/183777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-07-16 18:38 <a href="http://www.shnenglu.com/tx7do/archive/2012/07/16/183777.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷粯CListCtrl闃叉闂儊鐨勬柟娉?/title><link>http://www.shnenglu.com/tx7do/archive/2012/01/13/164085.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Thu, 12 Jan 2012 16:16:00 GMT</pubDate><guid>http://www.shnenglu.com/tx7do/archive/2012/01/13/164085.html</guid><wfw:comment>http://www.shnenglu.com/tx7do/comments/164085.html</wfw:comment><comments>http://www.shnenglu.com/tx7do/archive/2012/01/13/164085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/tx7do/comments/commentRss/164085.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/tx7do/services/trackbacks/164085.html</trackback:ping><description><![CDATA[<strong style="color: red">杞澆鑷細</strong><a style="color: red" ><strong>http://blog.csdn.net/mynamelj/article/details/6571383</strong></a><br /><br /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"> <p>鑷粯鎺т歡涓粡甯鎬細閬囧埌闂儊鐨勯棶棰橈紝涓昏鍘熷洜鏄煇涓尯鍩熷彂鐢熶簡閲嶅鎬х殑緇樺埗鑰屽鑷寸殑錛岃屽垪琛ㄦ帶浠跺湪鑷粯鍚庨棯鐑佸師鍥犳槸<strong>WM_ERASEBKGND</strong>娑堟伅鎵瀵艱嚧鐨勩傝В鍐沖畾鍔炴硶鍙互灝嗚繖涓秷鎭睆钄芥帀錛岀劧鍚庝嬌鐢ㄥ弻緙撳瓨錛屽湪Windows 5.1鐗堟湰浠ュ悗鍙互浣跨敤<a style="color: rgb(51,102,153); text-decoration: none" name="LVS_EX_DOUBLEBUFFER"><strong>LVS_EX_DOUBLEBUFFER</strong></a>鏍峰紡錛屼負浜嗗悇涓増鏈殑鍏煎鎬ф垜涓漢涓嶅緩璁嬌鐢ㄨ繖涓牱寮忥紝鍥犳鎴戜滑鍙互鎷︽埅WM_PAINT娑堟伅鏉ヤ嬌鐢ㄦ垜浠嚜宸插垱寤虹殑鍙岀紦瀛橈紝鍏蜂綋鐪嬩唬鐮佹墍紺猴細</p></span><br class="Apple-interchange-newline" /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"> 1.灞忚斀WM_ERASEBKGND娑堟伅 <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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">BOOL CMyListCtrl::OnEraseBkgnd(CDC </span><span style="color: #000000">*</span><span style="color: #000000"> pDC)  <br /><img id="Codehighlighter1_44_68_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_68_Open_Text.style.display='none'; Codehighlighter1_44_68_Closed_Image.style.display='inline'; Codehighlighter1_44_68_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_44_68_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_44_68_Closed_Text.style.display='none'; Codehighlighter1_44_68_Open_Image.style.display='inline'; Codehighlighter1_44_68_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_44_68_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_44_68_Open_Text"><span style="color: #000000">{  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> FALSE;  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div></span><br /><span style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; font: 14px/26px Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span">2.鍦╓M_PAINT娑堟伅涓?font color="#333333">浣跨敤鑷凡鐨勫弻緙撳瓨</font> <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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">void</span><span style="color: #000000"> CMyListCtrl::OnPaint()  <br /><img id="Codehighlighter1_30_1126_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_1126_Open_Text.style.display='none'; Codehighlighter1_30_1126_Closed_Image.style.display='inline'; Codehighlighter1_30_1126_Closed_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_30_1126_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_30_1126_Closed_Text.style.display='none'; Codehighlighter1_30_1126_Open_Image.style.display='inline'; Codehighlighter1_30_1126_Open_Text.style.display='inline';" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_30_1126_Closed_Text"><img alt="" src="http://www.shnenglu.com/Images/dot.gif" /></span><span id="Codehighlighter1_30_1126_Open_Text"><span style="color: #000000">{  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    CPaintDC dc(</span><span style="color: #0000ff">this</span><span style="color: #000000">);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    CRect rcClient,rcClip,rcHeader;  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    GetClientRect(</span><span style="color: #000000">&</span><span style="color: #000000">rcClient);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    GetHeaderCtrl()</span><span style="color: #000000">-></span><span style="color: #000000">GetWindowRect(</span><span style="color: #000000">&</span><span style="color: #000000">rcHeader);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    dc.GetClipBox(</span><span style="color: #000000">&</span><span style="color: #000000">rcClip);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    CDC MemDC;  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    CBitmap MemBitmap, </span><span style="color: #000000">*</span><span style="color: #000000">pOldBitmap;  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.CreateCompatibleDC(</span><span style="color: #000000">&</span><span style="color: #000000">dc);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> nMode </span><span style="color: #000000">=</span><span style="color: #000000"> MemDC.SetMapMode(dc.GetMapMode());  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemBitmap.CreateCompatibleBitmap(</span><span style="color: #000000">&</span><span style="color: #000000">dc,rcClient.Width(),rcClient.Height());  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    pOldBitmap </span><span style="color: #000000">=</span><span style="color: #000000"> MemDC.SelectObject(</span><span style="color: #000000">&</span><span style="color: #000000">MemBitmap);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.FillSolidRect(</span><span style="color: #000000">&</span><span style="color: #000000">rcClient,GetBkColor());  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    CRgn rgn;  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    rgn.CreateRectRgn(rcClip.left,rcClip.top,rcClip.right,rcClip.bottom);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.SelectClipRgn(</span><span style="color: #000000">&</span><span style="color: #000000">rgn);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    DefWindowProc(WM_PAINT,(WPARAM)MemDC.m_hDC,(LPARAM)</span><span style="color: #000000">0</span><span style="color: #000000">);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.SelectClipRgn(NULL);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (rcClip.top </span><span style="color: #000000"><</span><span style="color: #000000"> rcHeader.Height())  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />        rcClip.top </span><span style="color: #000000">=</span><span style="color: #000000"> rcHeader.Height();  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    dc.BitBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),</span><span style="color: #000000">&</span><span style="color: #000000">MemDC,rcClip.left,rcClip.top,SRCCOPY);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.SetMapMode(nMode);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.SelectObject(pOldBitmap);  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemDC.DeleteDC();  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    MemBitmap.DeleteObject();  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/InBlock.gif" />    rgn.DeleteObject();  <br /><img alt="" align="top" src="http://www.shnenglu.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div></span><br /><img src ="http://www.shnenglu.com/tx7do/aggbug/164085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2012-01-13 00:16 <a href="http://www.shnenglu.com/tx7do/archive/2012/01/13/164085.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.reboc.cn" target="_blank">久久久久久精品成人免费图片 </a>| <a href="http://www.sanling-group.com.cn" target="_blank">久久久久久久久久久免费精品</a>| <a href="http://www.rfqaod.cn" target="_blank">婷婷久久久亚洲欧洲日产国码AV</a>| <a href="http://www.yeziseo.cn" target="_blank">久久久久久午夜精品</a>| <a href="http://www.thegraces.com.cn" target="_blank">久久伊人精品一区二区三区</a>| <a href="http://www.fa808.cn" target="_blank">久久精品无码午夜福利理论片</a>| <a href="http://www.zgjgyl.cn" target="_blank">国产精品久久永久免费</a>| <a href="http://www.asook.cn" target="_blank">久久精品中文字幕有码</a>| <a href="http://www.nn75.cn" target="_blank">五月丁香综合激情六月久久</a>| <a href="http://www.uzfz.cn" target="_blank">.精品久久久麻豆国产精品</a>| <a href="http://www.hxinfocom.cn" target="_blank">久久国产精品视频</a>| <a href="http://www.loveindg.cn" target="_blank">伊人久久久AV老熟妇色</a>| <a href="http://www.b24193.cn" target="_blank">国产69精品久久久久99</a>| <a href="http://www.4008881898.com.cn" target="_blank">色婷婷噜噜久久国产精品12p</a>| <a href="http://www.wcjty.cn" target="_blank">色狠狠久久AV五月综合</a>| <a href="http://www.zhaiseng.cn" target="_blank">精品国产婷婷久久久</a>| <a href="http://www.udhv.cn" target="_blank">亚洲午夜无码久久久久</a>| <a href="http://www.e-li.cn" target="_blank">精品无码久久久久久久动漫</a>| <a href="http://www.uyns.cn" target="_blank">亚洲综合伊人久久大杳蕉</a>| <a href="http://www.qq577.cn" target="_blank">国内精品欧美久久精品</a>| <a href="http://www.schzjy.cn" target="_blank">久久久久国产精品熟女影院</a>| <a href="http://www.fengguan1688.cn" target="_blank">久久99热这里只有精品国产 </a>| <a href="http://www.the-music-cable.cn" target="_blank">久久精品无码午夜福利理论片</a>| <a href="http://www.scjyzj.cn" target="_blank">爱做久久久久久</a>| <a href="http://www.grandfreshop.cn" target="_blank">亚洲国产精品无码久久久秋霞2 </a>| <a href="http://www.91share.com.cn" target="_blank">欧美久久一级内射wwwwww.</a>| <a href="http://www.024cg.cn" target="_blank">97精品国产97久久久久久免费</a>| <a href="http://www.epfx.cn" target="_blank">久久精品国产一区</a>| <a href="http://www.xygree.cn" target="_blank">久久久久久国产精品美女</a>| <a href="http://www.tb57.cn" target="_blank">狠狠色伊人久久精品综合网</a>| <a href="http://www.dlucai.cn" target="_blank">国内精品伊人久久久久av一坑</a>| <a href="http://www.dgcry.cn" target="_blank">久久精品日日躁夜夜躁欧美</a>| <a href="http://www.sun-yan.cn" target="_blank">国内精品久久久久久中文字幕</a>| <a href="http://www.56dn.cn" target="_blank">国产精品久久午夜夜伦鲁鲁</a>| <a href="http://www.u24373.cn" target="_blank">狠狠色婷婷久久一区二区</a>| <a href="http://www.rocchetta.com.cn" target="_blank">久久这里只有精品视频99</a>| <a href="http://www.xiezongjun.cn" target="_blank">热re99久久精品国产99热</a>| <a href="http://www.renliu123.cn" target="_blank">97久久久久人妻精品专区</a>| <a href="http://www.bestorgazm.cn" target="_blank">看久久久久久a级毛片</a>| <a href="http://www.by1506.cn" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://www.shaoxing2010.cn" target="_blank">AV无码久久久久不卡蜜桃</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>