锘??xml version="1.0" encoding="utf-8" standalone="yes"?>农村妇女精品,欧美日韩 国产精品,这里只有精品视频在线http://m.shnenglu.com/guangping/archive/2008/08/04/57980.html闃垮厜闃垮厜Mon, 04 Aug 2008 08:57:00 GMThttp://m.shnenglu.com/guangping/archive/2008/08/04/57980.htmlhttp://m.shnenglu.com/guangping/comments/57980.htmlhttp://m.shnenglu.com/guangping/archive/2008/08/04/57980.html#Feedback0http://m.shnenglu.com/guangping/comments/commentRss/57980.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/57980.html 浠諱綍涓涓敱浜岃繘鍒舵暟浣嶄覆緇勬垚鐨勪唬鐮?閮藉彲浠ユ儫涓鍦頒笌涓涓彧鍚湁0鍜?涓や釜緋繪暟鐨勫欏瑰紡寤虹珛涓涓瀵瑰簲鐨勫叧緋匯備緥濡?浠g爜1010111瀵瑰簲鐨勫欏瑰紡涓篨6+X4+X2+X+1,鍚屾牱.澶氶」寮廥5+X3+X2+X+1瀵瑰簲鐨勪唬鐮佷負101111銆?br /> CRC鐮佸湪鍙戦佺緙栫爜鍜屾帴鏀剁鏍¢獙鏃?閮藉彲浠ュ埄鐢ㄤ簨鍏堢害瀹氱殑鐢熸垚澶氶」寮廏(X)鏉ュ緱鍒般?k浣嶈鍙戦佺殑淇℃伅浣嶅彲瀵瑰簲浜庝竴涓?k-1)嬈″欏瑰紡K(X),r浣嶅啑浣欎綅鍒欏搴斾簬涓涓?r-1)嬈″欏瑰紡R(X),鐢眐浣嶄俊鎭綅鍚庨潰鍔犱笂r浣嶅啑浣欎綅緇勬垚鐨刵=k+r浣嶇爜瀛楀垯瀵瑰簲浜庝竴涓?n-1)嬈″欏瑰紡T(X)=Xr路K(X)+R(X)銆備緥濡?

鐢變俊鎭綅浜х敓鍐椾綑浣嶇殑緙栫爜榪囩▼,灝辨槸宸茬煡K(X)姹俁(X)鐨勮繃紼嬨傚湪CRC鐮佷腑鍙互閫氳繃鎵懼埌涓涓壒瀹氱殑r嬈″欏瑰紡G (X)(鍏舵渶楂橀」Xr鐨勭郴鏁版亽涓?),鐒跺悗鐢╔r路K(X)鍘婚櫎浠(X),寰楀埌鐨勪綑寮忓氨鏄疪(X)銆傜壒鍒寮鴻皟鐨勬槸,榪欎簺澶氶」寮忎腑鐨?+"閮芥槸妯?鍔?涔熷嵆寮傛垨榪愮畻);姝ゅ,榪欓噷鐨勯櫎娉曠敤鐨勪篃鏄ā2闄ゆ硶,鍗抽櫎娉曡繃紼嬩腑鐢ㄥ埌鐨勫噺娉曟槸妯?鍑忔硶,瀹冨拰妯?鍔犳硶鐨勮繍綆楄鍒欎竴鏍?閮芥槸寮傛垨榪愮畻,榪欐槸涓縐嶄笉鑰冭檻鍔犳硶榪涗綅鍜屽噺娉曞熶綅鐨勮繍綆?鍗?/p>

0+O=0,0+1=1,1+0=1,1+1=0
0-0=0,0-1=1,1-0=1,1-1=0

鍦ㄨ繘琛屽熀浜庢ā2榪愮畻鐨勫欏瑰紡闄ゆ硶鏃?鍙閮ㄥ垎浣欐暟棣栦綅涓?,渚垮彲涓婂晢1,鍚﹀垯涓婂晢0銆傜劧鍚庢寜妯?鍑忔硶姹傚緱浣欐暟,璇ヤ綑鏁頒笉璁℃渶楂樹綅銆傚綋琚櫎鏁伴愪綅闄ゅ畬鏃?鏈鍚庡緱鍒版瘮闄ゆ暟灝戜竴浣嶇殑浣欐暟銆傛浣欐暟鍗充負鍐椾綑浣?灝嗗叾娣誨姞鍦ㄤ俊鎭綅鍚庝究鏋勬垚CRC鐮佸瓧銆?br /> 浠嶄互涓婁緥涓璌(X)=X6+X4+X3+1涓轟緥(鍗充俊鎭綅涓?011001),鑻(X)=X4+X3+1
(瀵瑰簲浠g爜11001),鍙杛=4,鍒橷4路K(X)=X10+X8+X7+X4(瀵瑰簲浠g爜涓?110010000),鍏剁敱妯?闄ゆ硶姹備綑寮廟(X)鐨勮繃紼嬫墍紺哄涓?


寰楀埌鐨勬渶鍚庝綑鏁頒負1010,榪欏氨鏄啑浣欎綅,瀵瑰簲R(X)=X3+X銆?br /> 鐢變簬R(X)鏄疿r路K(X)闄や互G(X)鐨勪綑寮?閭d箞涓嬪垪鍏崇郴寮忓繀鐒舵弧瓚?br /> Xr路K(X)=G(X)Q(X)+R(X)
鍏朵腑Q(X)涓哄晢寮忋傛牴鎹ā浜岃繍綆楄鍒橰(X)+R(X)=0鐨勭壒鐐?鍙皢涓婂紡鏀硅涓?/p>

[Xr-K(X)+R(X)]/G(X)=Q(X)

鍗? T(X)/G(X)=Q(X)

鐢辨鍙,淇¢亾涓婂彂閫佺殑鐮佸瓧澶氶」寮廡(X)=Xr-K(X)+R(X)銆傝嫢浼犺緭榪囩▼鏃犻敊錛屽垯鎺ユ敹鏂規(guī)敹鍒扮殑鐮佸瓧涔熷搴斾簬姝ゅ欏瑰紡,涔熷嵆鎺ユ敹鍒扮殑鐮佸瓧澶氶」寮忚兘琚獹(X)鏁撮櫎銆傚洜鑰屾帴鏀剁鐨勬牎楠岃繃紼嬪氨鏄皢鎺ユ敹鍒扮殑鐮佸瓧澶氶」寮忛櫎浠(X)鐨勮繃紼嬨傝嫢浣欏紡涓洪浂鍒欒涓轟紶杈撳厓宸敊;鑻ヤ綑寮忎笉涓洪浂鍒欎紶杈撴湁宸敊銆?/p>

渚嬪,鍓嶈堪渚嬪瓙涓嫢鐮佸瓧10110011010緇忎紶杈撳悗鐢變簬鍙楀櫔澹扮殑騫叉壈,鍦ㄦ帴鏀剁鍙樻垚涓?0110011100,鍒欐眰浣欏紡鐨勯櫎娉曞涓?
姹傚緱鐨勪綑寮忎笉涓洪浂,鐩稿綋浜庡湪鐮佸瓧涓婇潰鍗婂姞涓婁簡宸敊妯″紡00000000110銆傚樊閿欐ā寮忓搴旂殑澶氶」寮忚涓篍(X),涓婁緥涓璄(X)=X2+X銆傛湁宸敊鏃?鎺ユ敹绔敹鍒扮殑涓嶅啀鏄疶(X),鑰屾槸T(X)涓嶦(X)涔嬫ā浜屽姞,鍗?br /> [T(X)+E(X)]/G(X)=T(X)/G(X)+E(X)/G(X)
鑻(X)/G(X)=0,鍒欒繖縐嶅樊閿欏氨鑳芥嫻嬪嚭鏉?鑻(X)/G(X)=0,閭d箞鐢變簬鎺ユ敹鍒扮殑鐮佸瓧澶氶」寮忎粛鐒跺彲琚獹(X)鏁撮櫎,閿欒灝辨嫻嬩笉鍑烘潵,涔熷嵆鍙戠敓浜嗘紡媯銆?/p>

鐞嗚涓婂彲浠ヨ瘉鏄庡驚鐜啑浣欐牎楠岀爜鐨勬閿欒兘鍔涙湁浠ヤ笅鐗圭偣:
(1)鍙嫻嬪嚭鎵鏈夊鏁頒綅閿欍?br /> (2)鍙嫻嬪嚭鎵鏈夊弻姣旂壒鐨勯敊銆?br /> (3)鍙嫻嬪嚭鎵鏈夊皬浜庛佺瓑浜庢牎楠屼綅闀垮害鐨勭獊鍙戦敊銆?/p>

CRC鐮佹槸鐢眗-K(X)闄や互鏌愪釜閫夊畾鐨勫欏瑰紡鍚庝駭鐢熺殑,鎵浠ヨ澶氱幇寮忕О鐢熸垚澶氶」寮忋備竴鑸潵璇?鐢熸垚澶氶」寮忎綅鏁拌秺澶氭牎楠岃兘鍔涜秺寮恒備絾騫朵笉鏄換浣曚竴涓猺+1浣嶇殑浜岃繘鍒舵暟閮藉彲浠ュ仛鐢熸垚澶氶」寮忋?nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">鐩墠騫挎硾浣跨敤鐨勭敓鎴愬欏瑰紡涓昏鏈変互涓嬪洓縐?



闃垮厜 2008-08-04 16:57 鍙戣〃璇勮
]]>
C++涓殑宸﹀煎拰鍙沖?/title><link>http://m.shnenglu.com/guangping/archive/2008/04/23/47889.html</link><dc:creator>闃垮厜</dc:creator><author>闃垮厜</author><pubDate>Wed, 23 Apr 2008 03:40:00 GMT</pubDate><guid>http://m.shnenglu.com/guangping/archive/2008/04/23/47889.html</guid><wfw:comment>http://m.shnenglu.com/guangping/comments/47889.html</wfw:comment><comments>http://m.shnenglu.com/guangping/archive/2008/04/23/47889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/guangping/comments/commentRss/47889.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/guangping/services/trackbacks/47889.html</trackback:ping><description><![CDATA[1. 姒傚康 鍙橀噺鍜屾枃瀛楀父閲忛兘鏈夊瓨鍌ㄥ尯錛屽茍涓旀湁鐩稿叧鐨勭被鍨嬶紝鍖哄埆鍦ㄤ簬鍙橀噺鏄彲瀵誨潃鐨勶紱 <br /> 瀵逛簬姣忎釜鍙橀噺錛岄兘鏈?涓間笌鍏剁浉鍏寵仈錛?br /> 1>鏁版嵁鍊鹼紝瀛樺偍鍦ㄦ煇涓唴瀛樺湴鍧涓紝涔熺О鍙沖鹼紙rvalue錛夛紝鍙沖兼槸琚鍙栫殑鍊鹼紙read value錛夛紝鏂囧瓧甯擱噺鍜屽彉閲忛兘鍙鐢ㄤ簬鍙沖箋? <br /> 2>鍦板潃鍊鹼紝鍗沖瓨鍌ㄦ暟鎹肩殑閭e潡鍐呭瓨鍦板潃錛屼篃縐板乏鍊鹼紙lvalue錛夛紝鏂囧瓧甯擱噺涓嶈兘琚敤浣滃乏鍊箋? <br /><br />2 . 闂 緇欒〃杈懼紡鍔犱笂鎷彿錛?br /> ++a-- <br />緇撴灉 ++(a--) <br />榪欎釜琛ㄨ揪寮忔槸闈炴硶鐨勶紝鍥犱負鍓嶅閲忔搷浣滆姹備竴涓彲淇敼鐨勫乏鍊鹼紝鑰?"a--" 涓嶆槸宸﹀鹼紙鍗沖彸鍊鹼級<br /><br /> 3 . 鍓嶅閲忓拰鍚庡閲忕殑鍖哄埆 <br />鏃╂湡鐨刢璇█鏁欐潗錛宖or寰幆璇彞閫氬父鍐欐垚錛?br />for(int i=0;i<10;i++) <br />鑰岀幇鍦ㄥ涓猴細 <br />for(int i=0;i<10;++i) 涓よ呮湁鍖哄埆鍚楋紵 <br />a++ 鍗蟲槸榪斿洖 a鐨勫鹼紝鐒跺悗鍙橀噺 a 鍔?1錛岃繑鍥為渶瑕佷駭鐢熶竴涓復鏃跺彉閲忕被浼間簬 <br />{ int temp = a; <br /> a=a+1; <br /> return temp; //榪斿洖鍙沖? } <br /><br />++a 鍒欎負錛? <br />{ a=a+1; <br /> return &a; //榪斿洖宸﹀? } <br />鏄劇劧錛屽墠澧為噺涓嶉渶瑕佷腑闂村彉閲忥紝鏁堢巼鏇撮珮銆? <img src ="http://m.shnenglu.com/guangping/aggbug/47889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/guangping/" target="_blank">闃垮厜</a> 2008-04-23 11:40 <a href="http://m.shnenglu.com/guangping/archive/2008/04/23/47889.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>typedef鐢ㄦ硶灝忕粨http://m.shnenglu.com/guangping/archive/2008/04/08/46519.html闃垮厜闃垮厜Tue, 08 Apr 2008 08:21:00 GMThttp://m.shnenglu.com/guangping/archive/2008/04/08/46519.htmlhttp://m.shnenglu.com/guangping/comments/46519.htmlhttp://m.shnenglu.com/guangping/archive/2008/04/08/46519.html#Feedback0http://m.shnenglu.com/guangping/comments/commentRss/46519.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/46519.html 榪欎袱澶╁湪鐪嬬▼搴忕殑鏃跺?鍙戠幇寰堝鍦版柟閮界敤鍒皌ypedef,鍦ㄧ粨鏋勪綋瀹氫箟,榪樻湁涓浜涙暟緇勭瓑鍦版柟閮藉ぇ閲忕殑鐢ㄥ埌.浣嗘槸鏈変簺鍦版柟榪樹笉鏄緢娓呮,浠婂ぉ涓嬪崍,灝辨兂濂藉ソ鐮旂┒涓涓?涓婄綉鎼滀簡涓涓?鏈変笉灝戣祫鏂?褰掔撼涓涓?
鏉ユ簮涓:Using typedef to Curb Miscreant Code
Typedef 澹版槑鏈夊姪浜庡垱寤哄鉤鍙版棤鍏崇被鍨嬶紝鐢氳嚦鑳介殣钘忓鏉傚拰闅句互鐞嗚В鐨勮娉曘備笉綆℃庢牱錛屼嬌鐢?typedef 鑳戒負浠g爜甯︽潵鎰忔兂涓嶅埌鐨勫ソ澶勶紝閫氳繃鏈枃浣犲彲浠ュ涔犵敤 typedef 閬垮厤緙烘瑺錛屼粠鑰屼嬌浠g爜鏇村仴澹?br />typedef 澹版槑錛岀畝縐?typedef錛屼負鐜版湁綾誨瀷鍒涘緩涓涓柊鐨勫悕瀛椼傛瘮濡備漢浠父甯鎬嬌鐢?typedef 鏉ョ紪鍐欐洿緹庤鍜屽彲璇葷殑浠g爜銆傛墍璋撶編瑙傦紝鎰忔寚 typedef 鑳介殣钘忕鎷欑殑璇硶鏋勯犱互鍙婂鉤鍙扮浉鍏崇殑鏁版嵁綾誨瀷錛屼粠鑰屽寮哄彲縐繪鎬у拰浠ュ強鏈潵鐨勫彲緇存姢鎬с傛湰鏂囦笅闈㈠皢绔敖鍏ㄥ姏鏉ユ彮紺?typedef 寮哄ぇ鍔熻兘浠ュ強濡備綍閬垮厤涓浜涘父瑙佺殑闄烽槺銆?br />濡備綍鍒涘緩騫沖彴鏃犲叧鐨勬暟鎹被鍨嬶紝闅愯棌絎ㄦ嫏涓旈毦浠ョ悊瑙g殑璇硶?
浣跨敤 typedefs 涓虹幇鏈夌被鍨嬪垱寤哄悓涔夊瓧銆?br />瀹氫箟鏄撲簬璁板繂鐨勭被鍨嬪悕
銆銆typedef 浣跨敤鏈澶氱殑鍦版柟鏄垱寤烘槗浜庤蹇嗙殑綾誨瀷鍚嶏紝鐢ㄥ畠鏉ュ綊妗g▼搴忓憳鐨勬剰鍥俱傜被鍨嬪嚭鐜板湪鎵澹版槑鐨勫彉閲忓悕瀛椾腑錛屼綅浜?''typedef'' 鍏抽敭瀛楀彸杈廣備緥濡傦細
typedef int size;
銆銆姝ゅ0鏄庡畾涔変簡涓涓?int 鐨勫悓涔夊瓧錛屽悕瀛椾負 size銆傛敞鎰?typedef 騫朵笉鍒涘緩鏂扮殑綾誨瀷銆傚畠浠呬粎涓虹幇鏈夌被鍨嬫坊鍔犱竴涓悓涔夊瓧銆備綘鍙互鍦ㄤ換浣曢渶瑕?int 鐨勪笂涓嬫枃涓嬌鐢?size錛?br />void measure(size * psz);
size array[4];
size len = file.getlength();
std::vector vs;
銆銆typedef 榪樺彲浠ユ帺楗扮鍚堢被鍨嬶紝濡傛寚閽堝拰鏁扮粍銆備緥濡傦紝浣犱笉鐢ㄨ薄涓嬮潰榪欐牱閲嶅瀹氫箟鏈?81 涓瓧絎﹀厓绱犵殑鏁扮粍錛?br />char line[81];
char text[81];
瀹氫箟涓涓?typedef錛屾瘡褰撹鐢ㄥ埌鐩稿悓綾誨瀷鍜屽ぇ灝忕殑鏁扮粍鏃訛紝鍙互榪欐牱錛?br />typedef char Line[81];
Line text, secondline;
getline(text);
鍚屾牱錛屽彲浠ヨ薄涓嬮潰榪欐牱闅愯棌鎸囬拡璇硶錛?br />typedef char * pstr;
int mystrcmp(pstr, pstr);
銆銆榪欓噷灝嗗甫鎴戜滑鍒拌揪絎竴涓?typedef 闄烽槺銆傛爣鍑嗗嚱鏁?strcmp()鏈変袱涓榗onst char *'綾誨瀷鐨勫弬鏁般傚洜姝わ紝瀹冨彲鑳戒細璇浜轟滑璞′笅闈㈣繖鏍峰0鏄?mystrcmp()錛?br />int mystrcmp(const pstr, const pstr);
銆銆榪欐槸閿欒鐨勶紝鎸夌収欏哄簭錛屸榗onst pstr'琚В閲婁負鈥榗har * const'錛堜竴涓寚鍚?char 鐨勫父閲忔寚閽堬級錛岃屼笉鏄榗onst char *'錛堟寚鍚戝父閲?char 鐨勬寚閽堬級銆傝繖涓棶棰樺緢瀹規(guī)槗瑙e喅錛?br />typedef const char * cpstr;
int mystrcmp(cpstr, cpstr); // 鐜板湪鏄紜殑
璁頒綇錛氫笉綆′粈涔堟椂鍊欙紝鍙涓烘寚閽堝0鏄?typedef錛岄偅涔堥兘瑕佸湪鏈緇堢殑 typedef 鍚嶇О涓姞涓涓?const錛屼互浣垮緱璇ユ寚閽堟湰韜槸甯擱噺錛岃屼笉鏄璞°?br />浠g爜綆鍖?br />銆銆涓婇潰璁ㄨ鐨?typedef 琛屼負鏈夌偣鍍?#define 瀹忥紝鐢ㄥ叾瀹為檯綾誨瀷鏇夸唬鍚屼箟瀛椼備笉鍚岀偣鏄?typedef 鍦ㄧ紪璇戞椂琚В閲婏紝鍥犳璁╃紪璇戝櫒鏉ュ簲浠樿秴瓚婇澶勭悊鍣ㄨ兘鍔涚殑鏂囨湰鏇挎崲銆備緥濡傦細
typedef int (*PF) (const char *, const char *);
銆銆榪欎釜澹版槑寮曞叆浜?PF 綾誨瀷浣滀負鍑芥暟鎸囬拡鐨勫悓涔夊瓧錛岃鍑芥暟鏈変袱涓?const char * 綾誨瀷鐨勫弬鏁頒互鍙婁竴涓?int 綾誨瀷鐨勮繑鍥炲箋傚鏋滆浣跨敤涓嬪垪褰㈠紡鐨勫嚱鏁板0鏄庯紝閭d箞涓婅堪榪欎釜 typedef 鏄笉鍙垨緙虹殑錛?br />PF Register(PF pf);
銆銆Register() 鐨勫弬鏁版槸涓涓?PF 綾誨瀷鐨勫洖璋冨嚱鏁幫紝榪斿洖鏌愪釜鍑芥暟鐨勫湴鍧錛屽叾緗插悕涓庡厛鍓嶆敞鍐岀殑鍚嶅瓧鐩稿悓銆傚仛涓嬈℃繁鍛煎惛銆備笅闈㈡垜灞曠ず涓涓嬪鏋滀笉鐢?typedef錛屾垜浠槸濡備綍瀹炵幇榪欎釜澹版槑鐨勶細
int (*Register (int (*pf)(const char *, const char *)))
(const char *, const char *);
銆銆寰堝皯鏈夌▼搴忓憳鐞嗚В瀹冩槸浠涔堟剰鎬濓紝鏇翠笉鐢ㄨ榪欑璐硅В鐨勪唬鐮佹墍甯︽潵鐨勫嚭閿欓闄╀簡銆傛樉鐒訛紝榪欓噷浣跨敤 typedef 涓嶆槸涓縐嶇壒鏉冿紝鑰屾槸涓縐嶅繀闇銆傛寔鎬鐤戞佸害鐨勪漢鍙兘浼氶棶錛?OK錛屾湁浜鴻繕浼氬啓榪欐牱鐨勪唬鐮佸悧錛?錛屽揩閫熸祻瑙堜竴涓嬫彮紺?signal()鍑芥暟鐨勫ご鏂囦歡 錛屼竴涓湁鍚屾牱鎺ュ彛鐨勫嚱鏁般?br />typedef 鍜屽瓨鍌ㄧ被鍏抽敭瀛楋紙storage class specifier錛?br />銆銆榪欑璇存硶鏄笉鏄湁鐐逛護浜烘儕璁訛紝typedef 灝卞儚 auto錛宔xtern錛宮utable錛宻tatic錛屽拰 register 涓鏍鳳紝鏄竴涓瓨鍌ㄧ被鍏抽敭瀛椼傝繖騫舵槸璇?typedef 浼氱湡姝e獎鍝嶅璞$殑瀛樺偍鐗規(guī)э紱瀹冨彧鏄鍦ㄨ鍙ユ瀯鎴愪笂錛宼ypedef 澹版槑鐪嬭搗鏉ヨ薄 static錛宔xtern 絳夌被鍨嬬殑鍙橀噺澹版槑銆備笅闈㈠皢甯﹀埌絎簩涓櫡闃憋細
typedef register int FAST_COUNTER; // 閿欒
銆銆緙栬瘧閫氫笉榪囥傞棶棰樺嚭鍦ㄤ綘涓嶈兘鍦ㄥ0鏄庝腑鏈夊涓瓨鍌ㄧ被鍏抽敭瀛椼傚洜涓虹鍙?typedef 宸茬粡鍗犳嵁浜嗗瓨鍌ㄧ被鍏抽敭瀛楃殑浣嶇疆錛屽湪 typedef 澹版槑涓笉鑳界敤 register錛堟垨浠諱綍鍏跺畠瀛樺偍綾誨叧閿瓧錛夈?br />淇冭繘璺ㄥ鉤鍙板紑鍙?br />銆銆typedef 鏈夊彟澶栦竴涓噸瑕佺殑鐢ㄩ旓紝閭e氨鏄畾涔夋満鍣ㄦ棤鍏崇殑綾誨瀷錛屼緥濡傦紝浣犲彲浠ュ畾涔変竴涓彨 REAL 鐨勬誕鐐圭被鍨嬶紝鍦ㄧ洰鏍囨満鍣ㄤ笂瀹冨彲浠鑾峰緱鏈楂樼殑綺懼害錛?br />typedef long double REAL;
鍦ㄤ笉鏀寔 long double 鐨勬満鍣ㄤ笂錛岃 typedef 鐪嬭搗鏉ヤ細鏄笅闈㈣繖鏍鳳細
typedef double REAL;
騫朵笖錛屽湪榪?double 閮戒笉鏀寔鐨勬満鍣ㄤ笂錛岃 typedef 鐪嬭搗鏉ヤ細鏄繖鏍鳳細銆?br />typedef float REAL;
銆 銆浣犱笉鐢ㄥ婧愪唬鐮佸仛浠諱綍淇敼錛屼究鍙互鍦ㄦ瘡涓縐嶅鉤鍙頒笂緙栬瘧榪欎釜浣跨敤 REAL 綾誨瀷鐨勫簲鐢ㄧ▼搴忋傚敮涓瑕佹敼鐨勬槸 typedef 鏈韓銆傚湪澶у鏁版儏鍐典笅錛岀敋鑷寵繖涓井灝忕殑鍙樺姩瀹屽叏閮藉彲浠ラ氳繃濂囧鐨勬潯浠剁紪璇戞潵鑷姩瀹炵幇銆備笉鏄悧? 鏍囧噯搴撳箍娉涘湴浣跨敤 typedef 鏉ュ垱寤鴻繖鏍風殑騫沖彴鏃犲叧綾誨瀷錛歴ize_t錛宲trdiff 鍜?fpos_t 灝辨槸鍏朵腑鐨勪緥瀛愩傛澶栵紝璞?std::string 鍜?std::ofstream 榪欐牱鐨?typedef 榪橀殣钘忎簡闀塊暱鐨勶紝闅句互鐞嗚В鐨勬ā鏉跨壒鍖栬娉曪紝渚嬪錛歜asic_string錛宎llocator> 鍜?basic_ofstream>銆?br />浣滆呯畝浠?br />銆銆Danny Kalev 鏄竴鍚嶉氳繃璁よ瘉鐨勭郴緇熷垎鏋愬笀錛屼笓鏀?C++ 鍜屽艦寮忚璦鐞嗚鐨勮蔣浠跺伐紼嬪笀銆?997 騫村埌 2000 騫存湡闂達紝浠栨槸 C++ 鏍囧噯濮斿憳浼氭垚鍛樸傛渶榪戜粬浠ヤ紭寮傛垚緇╁畬鎴愪簡浠栧湪鏅氳璦瀛︾爺絀舵柟闈㈢殑紜曞+璁烘枃銆備笟浣欐椂闂翠粬鍠滄鍚彜鍏擱煶涔愶紝闃呰緇村鍒╀簹鏃舵湡鐨勬枃瀛︿綔鍝侊紝鐮旂┒ Hittite銆丅asque 鍜?Irish Gaelic 榪欐牱鐨勮嚜鐒惰璦銆傚叾瀹冨叴瓚e寘鎷冨彜鍜屽湴鐞嗐侱anny 鏃跺父鍒頒竴浜?C++ 璁哄潧騫跺畾鏈熶負涓嶅悓鐨?C++ 緗戠珯鍜屾潅蹇楁挵鍐欐枃绔犮備粬榪樺湪鏁欒偛鏈烘瀯璁叉巿紼嬪簭璁捐璇█鍜屽簲鐢ㄨ璦璇劇▼銆?br />鏉ユ簮浜岋細(http://www.ccfans.net/bbs/dispbbs.asp?boardid=30&;id=4455)
C璇█涓璽ypedef鐢ㄦ硶
1. 鍩烘湰瑙i噴
銆銆typedef涓篊璇█鐨勫叧閿瓧錛屼綔鐢ㄦ槸涓轟竴縐嶆暟鎹被鍨嬪畾涔変竴涓柊鍚嶅瓧銆傝繖閲岀殑鏁版嵁綾誨瀷鍖呮嫭鍐呴儴鏁版嵁綾誨瀷錛坕nt,char絳夛級鍜岃嚜瀹氫箟鐨勬暟鎹被鍨嬶紙struct絳夛級銆?br />銆銆鍦ㄧ紪紼嬩腑浣跨敤typedef鐩殑涓鑸湁涓や釜錛屼竴涓槸緇欏彉閲忎竴涓槗璁頒笖鎰忎箟鏄庣‘鐨勬柊鍚嶅瓧錛屽彟涓涓槸綆鍖栦竴浜涙瘮杈冨鏉傜殑綾誨瀷澹版槑銆?br />銆銆鑷充簬typedef鏈変粈涔堝井濡欎箣澶勶紝璇蜂綘鎺ョ潃鐪嬩笅闈㈠鍑犱釜闂鐨勫叿浣撻槓榪般?br />銆2. typedef & 緇撴瀯鐨勯棶棰?br />銆銆褰撶敤涓嬮潰鐨勪唬鐮佸畾涔変竴涓粨鏋勬椂錛岀紪璇戝櫒鎶ヤ簡涓涓敊璇紝涓轟粈涔堝憿錛熻帿闈濩璇█涓嶅厑璁稿湪緇撴瀯涓寘鍚寚鍚戝畠鑷繁鐨勬寚閽堝悧錛熻浣犲厛鐚滄兂涓涓嬶紝鐒跺悗鐪嬩笅鏂囪鏄庯細
typedef struct tagNode
{
銆char *pItem;
銆pNode pNext;
} *pNode;
銆銆絳旀涓庡垎鏋愶細
銆銆1銆乼ypedef鐨勬渶綆鍗曚嬌鐢?br />typedef long byte_4;
銆銆緇欏凡鐭ユ暟鎹被鍨媗ong璧蜂釜鏂板悕瀛楋紝鍙玝yte_4銆?br />銆銆2銆?typedef涓庣粨鏋勭粨鍚堜嬌鐢?br />typedef struct tagMyStruct
{
銆int iNum;
銆long lLength;
} MyStruct;
銆銆榪欒鍙ュ疄闄呬笂瀹屾垚涓や釜鎿嶄綔錛?br />銆銆1) 瀹氫箟涓涓柊鐨勭粨鏋勭被鍨?br />struct tagMyStruct
{
銆int iNum;
銆long lLength;
};
銆銆鍒嗘瀽錛歵agMyStruct縐頒負鈥渢ag鈥濓紝鍗斥滄爣絳鋸濓紝瀹為檯涓婃槸涓涓復鏃跺悕瀛楋紝struct 鍏抽敭瀛楀拰tagMyStruct涓璧鳳紝鏋勬垚浜嗚繖涓粨鏋勭被鍨嬶紝涓嶈鏄惁鏈塼ypedef錛岃繖涓粨鏋勯兘瀛樺湪銆?br />銆銆鎴戜滑鍙互鐢╯truct tagMyStruct varName鏉ュ畾涔夊彉閲忥紝浣嗚娉ㄦ剰錛屼嬌鐢╰agMyStruct varName鏉ュ畾涔夊彉閲忔槸涓嶅鐨勶紝鍥犱負struct 鍜宼agMyStruct鍚堝湪涓璧鋒墠鑳借〃紺轟竴涓粨鏋勭被鍨嬨?br />銆銆2) typedef涓鴻繖涓柊鐨勭粨鏋勮搗浜嗕竴涓悕瀛楋紝鍙玀yStruct銆?br />typedef struct tagMyStruct MyStruct;
銆銆鍥犳錛孧yStruct瀹為檯涓婄浉褰撲簬struct tagMyStruct錛屾垜浠彲浠ヤ嬌鐢∕yStruct varName鏉ュ畾涔夊彉閲忋?br />銆銆絳旀涓庡垎鏋?br />銆銆C璇█褰撶劧鍏佽鍦ㄧ粨鏋勪腑鍖呭惈鎸囧悜瀹冭嚜宸辯殑鎸囬拡錛屾垜浠彲浠ュ湪寤虹珛閾捐〃絳夋暟鎹粨鏋勭殑瀹炵幇涓婄湅鍒版棤鏁拌繖鏍風殑渚嬪瓙錛屼笂榪頒唬鐮佺殑鏍規(guī)湰闂鍦ㄤ簬typedef鐨勫簲鐢ㄣ?br />銆銆鏍規(guī)嵁鎴戜滑涓婇潰鐨勯槓榪板彲浠ョ煡閬擄細鏂扮粨鏋勫緩绔嬬殑榪囩▼涓亣鍒頒簡pNext鍩熺殑澹版槑錛岀被鍨嬫槸pNode錛岃鐭ラ亾pNode琛ㄧず鐨勬槸綾誨瀷鐨勬柊鍚嶅瓧錛岄偅涔堝湪綾誨瀷鏈韓榪樻病鏈夊緩绔嬪畬鎴愮殑鏃跺欙紝榪欎釜綾誨瀷鐨勬柊鍚嶅瓧涔熻繕涓嶅瓨鍦紝涔熷氨鏄榪欎釜鏃跺欑紪璇戝櫒鏍規(guī)湰涓嶈璇唒Node銆?br />銆銆瑙e喅榪欎釜闂鐨勬柟娉曟湁澶氱錛?br />銆銆1)銆?br />typedef struct tagNode
{
銆char *pItem;
銆struct tagNode *pNext;
} *pNode;
銆銆2)銆?br />typedef struct tagNode *pNode;
struct tagNode
{
銆char *pItem;
銆pNode pNext;
};
銆銆娉ㄦ剰錛氬湪榪欎釜渚嬪瓙涓紝浣犵敤typedef緇欎竴涓繕鏈畬鍏ㄥ0鏄庣殑綾誨瀷璧鋒柊鍚嶅瓧銆侰璇█緙栬瘧鍣ㄦ敮鎸佽繖縐嶅仛娉曘?br />銆銆3)銆佽鑼冨仛娉曪細
struct tagNode
{
銆char *pItem;
銆struct tagNode *pNext;
};
typedef struct tagNode *pNode;
銆3. typedef & #define鐨勯棶棰?br />銆銆鏈変笅闈袱縐嶅畾涔塸Str鏁版嵁綾誨瀷鐨勬柟娉曪紝涓よ呮湁浠涔堜笉鍚岋紵鍝竴縐嶆洿濂戒竴鐐癸紵
typedef char *pStr;
#define pStr char *;
銆銆絳旀涓庡垎鏋愶細
銆銆閫氬父璁詫紝typedef瑕佹瘮#define瑕佸ソ錛岀壒鍒槸鍦ㄦ湁鎸囬拡鐨勫満鍚堛傝鐪嬩緥瀛愶細
typedef char *pStr1;
#define pStr2 char *;
pStr1 s1, s2;
pStr2 s3, s4;
銆銆鍦ㄤ笂榪扮殑鍙橀噺瀹氫箟涓紝s1銆乻2銆乻3閮借瀹氫箟涓篶har *錛岃宻4鍒欏畾涔夋垚浜哻har錛屼笉鏄垜浠墍棰勬湡鐨勬寚閽堝彉閲忥紝鏍規(guī)湰鍘熷洜灝卞湪浜?define鍙槸綆鍗曠殑瀛楃涓叉浛鎹㈣宼ypedef鍒欐槸涓轟竴涓被鍨嬭搗鏂板悕瀛椼?br />銆銆#define鐢ㄦ硶渚嬪瓙錛?br />#define f(x) x*x
main( )
{
銆int a=6錛宐=2錛宑錛?br />銆c=f(a) / f(b)錛?br />銆printf("%d \\n"錛宑)錛?br />}
銆銆浠ヤ笅紼嬪簭鐨勮緭鍑虹粨鏋滄槸: 36銆?br />銆銆鍥犱負濡傛鍘熷洜錛屽湪璁稿C璇█緙栫▼瑙勮寖涓彁鍒頒嬌鐢?define瀹氫箟鏃訛紝濡傛灉瀹氫箟涓寘鍚〃杈懼紡錛屽繀欏諱嬌鐢ㄦ嫭鍙鳳紝鍒欎笂榪板畾涔夊簲璇ュ涓嬪畾涔夋墠瀵癸細
#define f(x) (x*x)
銆銆褰撶劧錛屽鏋滀綘浣跨敤typedef灝辨病鏈夎繖鏍風殑闂銆?br />銆銆4. typedef & #define鐨勫彟涓渚?br />銆銆涓嬮潰鐨勪唬鐮佷腑緙栬瘧鍣ㄤ細鎶ヤ竴涓敊璇紝浣犵煡閬撴槸鍝釜璇彞閿欎簡鍚楋紵
typedef char * pStr;
char string[4] = "abc";
const char *p1 = string;
const pStr p2 = string;
p1++;
p2++;
銆銆絳旀涓庡垎鏋愶細
銆銆鏄痯2++鍑洪敊浜嗐傝繖涓棶棰樺啀涓嬈℃彁閱掓垜浠細typedef鍜?define涓嶅悓錛屽畠涓嶆槸綆鍗曠殑鏂囨湰鏇挎崲銆備笂榪頒唬鐮佷腑const pStr p2騫朵笉絳変簬const char * p2銆俢onst pStr p2鍜宑onst long x鏈川涓婃病鏈夊尯鍒紝閮芥槸瀵瑰彉閲忚繘琛屽彧璇婚檺鍒訛紝鍙笉榪囨澶勫彉閲弍2鐨勬暟鎹被鍨嬫槸鎴戜滑鑷繁瀹氫箟鐨勮屼笉鏄郴緇熷浐鏈夌被鍨嬭屽凡銆傚洜姝わ紝const pStr p2鐨勫惈涔夋槸錛氶檺瀹氭暟鎹被鍨嬩負char *鐨勫彉閲弍2涓哄彧璇伙紝鍥犳p2++閿欒銆?br />銆銆#define涓巘ypedef寮曠敵璋?br />銆銆1) #define瀹忓畾涔夋湁涓涓壒鍒殑闀垮錛氬彲浠ヤ嬌鐢?#ifdef ,#ifndef絳夋潵榪涜閫昏緫鍒ゆ柇錛岃繕鍙互浣跨敤#undef鏉ュ彇娑堝畾涔夈?br />銆銆2) typedef涔熸湁涓涓壒鍒殑闀垮錛氬畠絎﹀悎鑼冨洿瑙勫垯錛屼嬌鐢╰ypedef瀹氫箟鐨勫彉閲忕被鍨嬪叾浣滅敤鑼冨洿闄愬埗鍦ㄦ墍瀹氫箟鐨勫嚱鏁版垨鑰呮枃浠跺唴錛堝彇鍐充簬姝ゅ彉閲忓畾涔夌殑浣嶇疆錛夛紝鑰屽畯瀹氫箟鍒欐病鏈夎繖縐嶇壒鎬с?br />銆銆5. typedef & 澶嶆潅鐨勫彉閲忓0鏄?br />銆銆鍦ㄧ紪紼嬪疄璺典腑錛屽挨鍏舵槸鐪嬪埆浜轟唬鐮佺殑鏃跺欙紝甯稿父浼氶亣鍒版瘮杈冨鏉傜殑鍙橀噺澹版槑,浣跨敤typedef浣滅畝鍖栬嚜鏈夊叾浠峰鹼紝姣斿錛?br />銆銆涓嬮潰鏄笁涓彉閲忕殑澹版槑錛屾垜鎯充嬌鐢╰ypdef鍒嗗埆緇欏畠浠畾涔変竴涓埆鍚嶏紝璇烽棶璇ュ浣曞仛錛?br />>1錛歩nt *(*a[5])(int, char*);
>2錛歷oid (*b[10]) (void (*)());
>3. doube(*)() (*pa)[9];
銆銆絳旀涓庡垎鏋愶細
銆銆瀵瑰鏉傚彉閲忓緩绔嬩竴涓被鍨嬪埆鍚嶇殑鏂規(guī)硶寰堢畝鍗曪紝浣犲彧瑕佸湪浼犵粺鐨勫彉閲忓0鏄庤〃杈懼紡閲岀敤綾誨瀷鍚嶆浛浠e彉閲忓悕錛岀劧鍚庢妸鍏抽敭瀛梩ypedef鍔犲湪璇ヨ鍙ョ殑寮澶村氨琛屼簡銆?br />>1錛歩nt *(*a[5])(int, char*);
//pFun鏄垜浠緩鐨勪竴涓被鍨嬪埆鍚?br />typedef int *(*pFun)(int, char*);
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巌nt* (*a[5])(int, char*);
pFun a[5];
>2錛歷oid (*b[10]) (void (*)());
//棣栧厛涓轟笂闈㈣〃杈懼紡钃濊壊閮ㄥ垎澹版槑涓涓柊綾誨瀷
typedef void (*pFunParam)();
//鏁翠綋澹版槑涓涓柊綾誨瀷
typedef void (*pFun)(pFunParam);
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巚oid (*b[10]) (void (*)());
pFun b[10];
>3. doube(*)() (*pa)[9];
//棣栧厛涓轟笂闈㈣〃杈懼紡钃濊壊閮ㄥ垎澹版槑涓涓柊綾誨瀷
typedef double(*pFun)();
//鏁翠綋澹版槑涓涓柊綾誨瀷
typedef pFun (*pFunParam)[9];
//浣跨敤瀹氫箟鐨勬柊綾誨瀷鏉ュ0鏄庡璞★紝絳変環(huán)浜巇oube(*)() (*pa)[9];
pFunParam pa;



闃垮厜 2008-04-08 16:21 鍙戣〃璇勮
]]>
windows涓嬬敤vim瀹炵幇qt浠g爜鐨勮嚜鍔ㄨˉ鍏ㄥ姛鑳?/title><link>http://m.shnenglu.com/guangping/archive/2008/02/18/42917.html</link><dc:creator>闃垮厜</dc:creator><author>闃垮厜</author><pubDate>Mon, 18 Feb 2008 15:29:00 GMT</pubDate><guid>http://m.shnenglu.com/guangping/archive/2008/02/18/42917.html</guid><wfw:comment>http://m.shnenglu.com/guangping/comments/42917.html</wfw:comment><comments>http://m.shnenglu.com/guangping/archive/2008/02/18/42917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/guangping/comments/commentRss/42917.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/guangping/services/trackbacks/42917.html</trackback:ping><description><![CDATA[ <span id="hvzpftn" class="tpc_content">1.瀹夎vim.<br />2.涓嬭澆ctags for win32騫惰В鍘嬪埌c:\ctags\鐩綍涓?<br />3.灝哻:\ctags鍔犲叆windows鐨刾ath鐜鍙橀噺涓?<br />4.涓嬭澆omnicppcomplete灝嗚В鍘嬪埌vim瀹夎鐩綍鐨剉imfiles鐩綍涓?<br />5.杞埌qt鐨刬nclude鐩綍涓嬫墽琛宑tags -R --c++-kinds=+p --fields=+iaS --extra=+q;鍛戒護瀹屾垚鍚庝細鍦ㄨ鐩綍涓?br />鐢熸垚涓涓猼ags鏂囦歡錛屽畠鏄痮mnicppcomplete鍜寁im鐢ㄦ潵浣滃懡浠よˉ鍏ㄧ殑鏁版嵁搴撱?br />6.鍦╭t鐨剆rc鐩綍涓嬪啀鎵ц涓閬嶄笂榪板懡浠?<br />7.緙栬緫vim瀹夎鐩綍涓嬬殑_vimrc鏂囦歡錛屽皢涓嬭堪涓よ鍔犲叆鍏朵腑<br />set tags+=c:\Qt\4.3.3\include\tags<br />set tags+=c:\Qt\4.3.3\src\tag<br />鍏朵腑c:\Qt\4.3.3\鏄垜鏈哄櫒涓妐t 鐨勫畨瑁呯洰褰曪紝鏍規(guī)嵁浣犵殑鎯呭喌浣滃嚭璋冩暣銆?br />8.鍒頒綘鐨勫伐紼嬬洰褰曚笅鎵ц5姝ヤ腑鐨勫懡浠?<br />9.鐢╲im鎵撳紑涓涓猚pp鏂囦歡璇曚竴涓嬪惂錛屽搱鍝?<br /><br /></span> <img src ="http://m.shnenglu.com/guangping/aggbug/42917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/guangping/" target="_blank">闃垮厜</a> 2008-02-18 23:29 <a href="http://m.shnenglu.com/guangping/archive/2008/02/18/42917.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/C++ 鍐呭瓨綆$悊 Heap vs Stackhttp://m.shnenglu.com/guangping/archive/2007/08/01/29131.html闃垮厜闃垮厜Wed, 01 Aug 2007 03:24:00 GMThttp://m.shnenglu.com/guangping/archive/2007/08/01/29131.htmlhttp://m.shnenglu.com/guangping/comments/29131.htmlhttp://m.shnenglu.com/guangping/archive/2007/08/01/29131.html#Feedback1http://m.shnenglu.com/guangping/comments/commentRss/29131.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/29131.html
涓銆侀澶囩煡璇嗏旂▼搴忕殑鍐呭瓨鍒嗛厤
涓涓敱c/C++緙栬瘧鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗕負浠ヤ笅鍑犱釜閮ㄥ垎
1銆佹爤鍖猴紙stack錛夆?鐢辯紪璇戝櫒鑷姩鍒嗛厤閲婃斁 錛屽瓨鏀懼嚱鏁扮殑鍙傛暟鍊鹼紝灞閮ㄥ彉閲忕殑鍊肩瓑銆傚叾鎿嶄綔鏂瑰紡綾諱技浜庢暟鎹粨鏋勪腑鐨勬爤銆?
2銆佸爢鍖猴紙heap錛?鈥?涓鑸敱紼嬪簭鍛樺垎閰嶉噴鏀撅紝 鑻ョ▼搴忓憳涓嶉噴鏀撅紝紼嬪簭緇撴潫鏃跺彲鑳界敱O(jiān)S鍥炴敹 銆傛敞鎰忓畠涓庢暟鎹粨鏋勪腑鐨勫爢鏄袱鍥炰簨錛屽垎閰嶆柟寮忓掓槸綾諱技浜庨摼琛紝鍛靛懙銆?
3銆佸叏灞鍖猴紙闈欐佸尯錛夛紙static錛夆旓紝鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忕殑瀛樺偍鏄斁鍦ㄤ竴鍧楃殑錛屽垵濮嬪寲鐨勫叏灞鍙橀噺鍜岄潤鎬佸彉閲忓湪涓鍧楀尯鍩燂紝 鏈垵濮嬪寲鐨勫叏灞鍙橀噺鍜屾湭鍒濆鍖栫殑闈欐佸彉閲忓湪鐩擱偦鐨勫彟涓鍧楀尯鍩熴?- 紼嬪簭緇撴潫鍚庢湁緋葷粺閲婃斁
4銆佹枃瀛楀父閲忓尯 鈥斿父閲忓瓧絎︿覆灝辨槸鏀懼湪榪欓噷鐨勩?紼嬪簭緇撴潫鍚庣敱緋葷粺閲婃斁
5銆佺▼搴忎唬鐮佸尯鈥斿瓨鏀懼嚱鏁頒綋鐨勪簩榪涘埗浠g爜銆?

浜屻佷緥瀛愮▼搴?
榪欐槸涓涓墠杈堝啓鐨勶紝闈炲父璇︾粏

//main.cpp
int a =0; 鍏ㄥ眬鍒濆鍖栧尯
char*p1; 鍏ㄥ眬鏈垵濮嬪寲鍖?
main()
{
int b;// 鏍?
char s[] ="abc"; //鏍?
char*p2; //鏍?
char*p3 ="123456"; 123456\0";//鍦ㄥ父閲忓尯錛宲3鍦ㄦ爤涓娿?
staticint c =0錛?//鍏ㄥ眬錛堥潤鎬侊級鍒濆鍖栧尯
p1 = (char*)malloc(10);
p2
= (char*)malloc(20);
//鍒嗛厤寰楁潵寰?0鍜?0瀛楄妭鐨勫尯鍩熷氨鍦ㄥ爢鍖恒?
strcpy(p1, "123456"); //123456\0鏀懼湪甯擱噺鍖猴紝緙栬瘧鍣ㄥ彲鑳戒細灝嗗畠涓巔3鎵鎸囧悜鐨?123456"浼樺寲鎴愪竴涓湴鏂廣?
}


涓夈佸爢鍜屾爤鐨勭悊璁虹煡璇?
3.1鐢寵鏂瑰紡
stack:
鐢辯郴緇熻嚜鍔ㄥ垎閰嶃?渚嬪錛屽0鏄庡湪鍑芥暟涓竴涓眬閮ㄥ彉閲?int b; 緋葷粺鑷姩鍦ㄦ爤涓負b寮杈熺┖闂?
heap:
闇瑕佺▼搴忓憳鑷繁鐢寵錛屽茍鎸囨槑澶у皬錛屽湪c涓璵alloc鍑芥暟
濡俻1 = (char *)malloc(10);
鍦–++涓敤new榪愮畻絎?
濡俻2 = (char *)malloc(10);
浣嗘槸娉ㄦ剰p1銆乸2鏈韓鏄湪鏍堜腑鐨勩?
3.2 鐢寵鍚庣郴緇熺殑鍝嶅簲
鏍堬細鍙鏍堢殑鍓╀綑絀洪棿澶т簬鎵鐢寵絀洪棿錛岀郴緇熷皢涓虹▼搴忔彁渚涘唴瀛橈紝鍚﹀垯灝嗘姤寮傚父鎻愮ず鏍堟孩鍑恒?
鍫嗭細棣栧厛搴旇鐭ラ亾鎿嶄綔緋葷粺鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛紝褰撶郴緇熸敹鍒扮▼搴忕殑鐢寵鏃訛紝
浼? 閬嶅巻璇ラ摼琛紝瀵繪壘絎竴涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡皢璇ョ粨鐐逛粠絀洪棽緇撶偣閾捐〃涓垹闄わ紝騫跺皢璇ョ粨鐐圭殑絀洪棿鍒嗛厤緇欑▼搴忥紝鍙﹀錛屽浜庡ぇ澶氭暟緋葷粺錛屼細鍦ㄨ繖鍧楀唴 瀛樼┖闂翠腑鐨勯鍦板潃澶勮褰曟湰嬈″垎閰嶇殑澶у皬錛岃繖鏍鳳紝浠g爜涓殑delete璇彞鎵嶈兘姝g‘鐨勯噴鏀炬湰鍐呭瓨絀洪棿銆傚彟澶栵紝鐢變簬鎵懼埌鐨勫爢緇撶偣鐨勫ぇ灝忎笉涓瀹氭濂界瓑浜庣敵璇風殑澶? 灝忥紝緋葷粺浼氳嚜鍔ㄧ殑灝嗗浣欑殑閭i儴鍒嗛噸鏂版斁鍏ョ┖闂查摼琛ㄤ腑銆?
3.3鐢寵澶у皬鐨勯檺鍒?
鏍堬細鍦╓indows涓?鏍堟槸鍚戜綆鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝 鏄竴鍧楄繛緇殑鍐呭瓨鐨勫尯鍩熴傝繖鍙ヨ瘽鐨勬剰鎬濇槸鏍堥《鐨勫湴鍧鍜屾爤鐨勬渶澶у閲忔槸緋葷粺棰勫厛瑙勫畾濂界殑錛屽湪 WINDOWS涓嬶紝鏍堢殑澶у皬鏄?M錛堜篃鏈夌殑璇存槸1M錛屾諱箣鏄竴 涓紪璇戞椂灝辯‘瀹氱殑甯告暟錛夛紝濡傛灉鐢寵鐨勭┖闂磋秴榪囨爤鐨勫墿浣欑┖闂存椂錛屽皢鎻愮ずoverflow銆傚洜姝わ紝鑳戒粠鏍堣幏寰楃殑絀洪棿杈冨皬銆?
鍫嗭細鍫嗘槸鍚戦珮鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄笉榪炵畫鐨勫唴瀛樺尯鍩熴傝繖鏄敱浜庣郴緇熸槸鐢ㄩ摼琛ㄦ潵瀛樺偍鐨勭┖闂插唴瀛樺湴鍧鐨勶紝鑷劧鏄笉榪炵畫鐨勶紝鑰岄摼琛ㄧ殑閬嶅巻鏂瑰悜鏄敱浣庡湴鍧鍚戦珮鍦板潃銆傚爢鐨勫ぇ灝忓彈闄愪簬璁$畻鏈虹郴緇熶腑鏈夋晥鐨勮櫄鎷熷唴瀛樸傜敱姝ゅ彲瑙侊紝鍫嗚幏寰楃殑絀洪棿姣旇緝鐏墊椿錛屼篃姣旇緝澶с?
3.4鐢寵鏁堢巼鐨勬瘮杈冿細
鏍堢敱緋葷粺鑷姩鍒嗛厤錛岄熷害杈冨揩銆備絾紼嬪簭鍛樻槸鏃犳硶鎺у埗鐨勩?
鍫嗘槸鐢眓ew鍒嗛厤鐨勫唴瀛橈紝涓鑸熷害姣旇緝鎱紝鑰屼笖瀹規(guī)槗浜х敓鍐呭瓨紕庣墖,涓嶈繃鐢ㄨ搗鏉ユ渶鏂逛究.
鍙﹀錛屽湪WINDOWS涓嬶紝鏈濂界殑鏂瑰紡鏄敤VirtualAlloc鍒嗛厤鍐呭瓨錛屼粬涓嶆槸鍦ㄥ爢錛屼篃涓嶆槸鍦ㄦ爤鏄洿鎺ュ湪榪涚▼鐨勫湴鍧絀洪棿涓繚鐣欎竴蹇唴瀛橈紝铏界劧鐢ㄨ搗鏉ユ渶涓嶆柟渚褲備絾鏄熷害蹇紝涔熸渶鐏墊椿
3.5鍫嗗拰鏍堜腑鐨勫瓨鍌ㄥ唴瀹?
鏍堬細 鍦ㄥ嚱鏁拌皟鐢ㄦ椂錛岀涓涓繘鏍堢殑鏄富鍑芥暟涓悗鐨勪笅涓鏉℃寚浠わ紙鍑芥暟璋冪敤璇彞鐨勪笅涓鏉″彲鎵ц璇彞錛夌殑鍦板潃錛岀劧鍚庢槸鍑芥暟鐨勫悇涓弬鏁幫紝鍦ㄥぇ澶氭暟鐨凜緙栬瘧鍣ㄤ腑錛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑錛岀劧鍚庢槸鍑芥暟涓殑灞閮ㄥ彉閲忋傛敞鎰忛潤鎬佸彉閲忔槸涓嶅叆鏍堢殑銆?
褰撴湰嬈″嚱鏁拌皟鐢ㄧ粨鏉熷悗錛屽眬閮ㄥ彉閲忓厛鍑烘爤錛岀劧鍚庢槸鍙傛暟錛屾渶鍚庢爤欏舵寚閽堟寚鍚戞渶寮濮嬪瓨鐨勫湴鍧錛屼篃灝辨槸涓誨嚱鏁頒腑鐨勪笅涓鏉℃寚浠わ紝紼嬪簭鐢辮鐐圭戶緇繍琛屻?
鍫嗭細涓鑸槸鍦ㄥ爢鐨勫ご閮ㄧ敤涓涓瓧鑺傚瓨鏀懼爢鐨勫ぇ灝忋傚爢涓殑鍏蜂綋鍐呭鏈夌▼搴忓憳瀹夋帓銆?
3.6瀛樺彇鏁堢巼鐨勬瘮杈?

char s1[] = "aaaaaaaaaaaaaaa";
char *s2 = "bbbbbbbbbbbbbbbbb";
aaaaaaaaaaa鏄湪榪愯鏃跺埢璧嬪肩殑錛?
鑰宐bbbbbbbbbb鏄湪緙栬瘧鏃跺氨紜畾鐨勶紱
浣嗘槸錛屽湪浠ュ悗鐨勫瓨鍙栦腑錛屽湪鏍堜笂鐨勬暟緇勬瘮鎸囬拡鎵鎸囧悜鐨勫瓧絎︿覆(渚嬪鍫?蹇?
姣斿錛?
#include stdio.h>;
void main()
{
char a =1;
char c[] ="1234567890";
char*p ="1234567890";
a
= c[1];
a
= p[1];
return;
}

瀵瑰簲鐨勬眹緙栦唬鐮?
10: a = c[1];
00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]
0040106A 88 4D FC mov byte ptr [ebp-4],cl
11: a = p[1];
0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]
00401070 8A 42 01 mov al,byte ptr [edx+1]
00401073 88 45 FC mov byte ptr [ebp-4],al

絎竴縐嶅湪璇誨彇鏃剁洿鎺ュ氨鎶婂瓧絎︿覆涓殑鍏冪礌璇誨埌瀵勫瓨鍣╟l涓紝鑰岀浜岀鍒欒鍏堟妸鎸囬拡鍊艱鍒癳dx涓紝鍦ㄦ牴鎹甧dx璇誨彇瀛楃錛屾樉鐒舵參浜嗐?


3.7灝忕粨錛?
鍫嗗拰鏍堢殑鍖哄埆鍙互鐢ㄥ涓嬬殑姣斿柣鏉ョ湅鍑猴細
浣跨敤鏍堝氨璞℃垜浠幓楗閲屽悆楗紝鍙鐐硅彍錛堝彂鍑虹敵璇鳳級銆佷粯閽便佸拰鍚冿紙浣跨敤錛夛紝鍚冮ケ浜嗗氨璧幫紝涓嶅繀鐞嗕細鍒囪彍銆佹礂鑿滅瓑鍑嗗宸ヤ綔鍜屾礂紕椼佸埛閿呯瓑鎵熬宸ヤ綔錛屼粬鐨勫ソ澶勬槸蹇嵎錛屼絾鏄嚜鐢卞害灝忋?
浣跨敤鍫嗗氨璞℃槸鑷繁鍔ㄦ墜鍋氬枩嬈㈠悆鐨勮彍鑲達紝姣旇緝楹葷儲錛屼絾鏄瘮杈冪鍚堣嚜宸辯殑鍙e懗錛岃屼笖鑷敱搴﹀ぇ銆?

鍫嗗拰鏍堢殑鍖哄埆涓昏鍒嗭細
鎿嶄綔緋葷粺鏂歸潰鐨勫爢鍜屾爤錛屽涓婇潰璇寸殑閭d簺錛屼笉澶氳浜嗐?
榪樻湁灝辨槸鏁版嵁緇撴瀯鏂歸潰鐨勫爢鍜屾爤錛岃繖浜涢兘鏄笉鍚岀殑姒傚康銆傝繖閲岀殑鍫嗗疄闄呬笂鎸囩殑灝辨槸錛堟弧瓚沖爢鎬ц川鐨勶級浼樺厛闃熷垪鐨勪竴縐嶆暟鎹粨鏋勶紝絎?涓厓绱犳湁鏈楂樼殑浼樺厛鏉冿紱鏍堝疄闄呬笂灝辨槸婊¤凍鍏堣繘鍚庡嚭鐨勬ц川鐨勬暟瀛︽垨鏁版嵁緇撴瀯銆?
铏界劧鍫嗘爤錛屽爢鏍堢殑璇存硶鏄繛璧鋒潵鍙紝浣嗘槸浠栦滑榪樻槸鏈夊緢澶у尯鍒殑錛岃繛鐫鍙彧鏄敱浜庡巻鍙茬殑鍘熷洜

闃垮厜 2007-08-01 11:24 鍙戣〃璇勮
]]>
OCI緇忓吀鍙傝冩枃妗o紙杞澆錛?/title><link>http://m.shnenglu.com/guangping/archive/2007/07/06/27605.html</link><dc:creator>闃垮厜</dc:creator><author>闃垮厜</author><pubDate>Fri, 06 Jul 2007 07:44:00 GMT</pubDate><guid>http://m.shnenglu.com/guangping/archive/2007/07/06/27605.html</guid><wfw:comment>http://m.shnenglu.com/guangping/comments/27605.html</wfw:comment><comments>http://m.shnenglu.com/guangping/archive/2007/07/06/27605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/guangping/comments/commentRss/27605.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/guangping/services/trackbacks/27605.html</trackback:ping><description><![CDATA[ 涓錛?Oracle oci宸ュ叿鍖呭畨瑁咃細 <br />$ORACLE_HOME\BIN:鎵ц鏂囦歡鍜宧elp鏂囦歡 <br />$ORACLE_HOME\OCI\INCLUDE:澶存枃浠?<br />$ORACLE_HOME\OCI\LIB\BC: for Borlanf C++鐨凮CI搴?<br />$ORACLE_HOME\OCI\LIB\MSVC: for MS Visual C++鐨凮CI搴?<br /><br />濡傛灉鏄痷nix涓嬶紝瀵逛簬ORACLE8i錛屽垯OCI搴撳湪$ORACLE_HOME/lib涓?濡傛灉鏄?i,鍒欏湪$ORACLE_HOME/lib32涓嬶紝搴撴枃浠跺悕涓鑸負libclntsh.so <br />1錛?鍒涘緩OCI鐜鍗沖垱寤哄拰鍒濆鍖朞CI宸ヤ綔鐜錛屽叾浠栫殑OCI鍑芥暟闇瑕丱CI鐜鎵嶈兘鎵ц銆?<br />2錛?闇瑕佺敵璇風殑鍙ユ焺綾誨瀷錛?<br />OCI鐜鍙ユ焺錛?OCI_HTYPE_ENV鈥斿畠瀹氫箟鎵鏈塐CI鍑芥暟鐨勭幆澧冭皟鐢ㄧ幆澧冿紝鏄叾浠栧彞鏌勭殑鐖跺彞鏌勩?鐢監(jiān)CIEnvInit鎴朞CIEnvCreate鐢熸垚) <br /> 閿欒鍙ユ焺錛歄CI_HTYPE_ERROR鈥斾綔涓轟竴浜汷CI鍑芥暟鐨勫弬鏁幫紝鐢ㄦ潵璁板綍榪欎簺OCI鍑芥暟鎿嶄綔榪囩▼涓墍浜х敓鐨勯敊璇紝褰撴湁閿欒鍙戠敓鏃訛紝鍙敤COIErrorGet()鏉ヨ鍙栭敊璇彞鏌?涓褰曠殑閿欒淇℃伅銆?<br />鏈嶅姟鍣ㄧ幆澧冨彞鏌勶細OCI_HTYPE_SVCCTX鈥斿畾涔塐CI璋冪敤鐨勬湇鍔″櫒鎿嶄綔鐜錛屽畠鍖呭惈鏈嶅姟鍣ㄣ佺敤鎴蜂細璇濆拰浜嬪姟涓夌鍙ユ焺銆?<br />鏈嶅姟鍣ㄥ彞鏌勶細OCI_HTYPE_SERVER鈥旀爣璇嗘暟鎹簮錛屽畠杞崲涓轟笌鏈嶅姟鍣ㄧ殑鐗╃悊榪炴帴銆?<br />鐢ㄦ埛浼氳瘽鍙ユ焺錛歄CI_HTYPE_SESSION鈥斿畾涔夌敤鎴瘋鑹插拰鏉冮檺鍙奜CI璋冪敤鐨勬墽琛岀幆澧冦?<br />浜嬪姟鍙ユ焺錛歄CI_HTYPE_TRANS鈥斿畾涔夋墽琛孲QL鎿嶄綔鐨勪簨鍔$幆澧冿紝浜嬪姟鐜涓寘鍚敤鎴風殑浼氳瘽鐘舵佷俊鎭?<br />璇彞鍙ユ焺錛歄CI_HTYPE_STMT鈥旀槸涓涓爣璇哠QL璇彞鎴朠L/SQL鍧楋紝浠ュ強鍏剁浉鍏沖睘鎬х殑鐜銆?<br />Bind/Define鍙ユ焺錛氬睘浜庤鍙ュ彞鏌勭殑瀛愬彞鏌勶紝鐢監(jiān)CI搴撻殣寮忚嚜鍔ㄧ敓鎴愩傜敤鎴蜂笉闇瑕佽嚜宸卞啀鐢寵錛孫CI杈撳叆鍙橀噺瀛樺偍鍦╞ind 鍙ユ焺涓紝杈撳嚭鍙橀噺瀛樺偍鍦ㄥ畾涔夊彞鏌勪腑 <br /><br />銆3錛?鍙ユ焺灞炴у寘鎷細 <br />鏈嶅姟鍣ㄧ幆澧冨彞鏌勫睘鎬э細(OCI_HTYPE_SVCCTX) <br /> OCI_ATTR_SERVER鈥旇緗?璇誨彇鏈嶅姟鐜鐨勬湇鍔″櫒鐜灞炴?<br /> OCI_ATTR_SESSION鈥旇緗?璇誨彇鏈嶅姟鐜鐨勪細璇濊璇佺幆澧冨睘鎬?<br /> OCI_ATTR_TRANS鈥旇緗?璇誨彇鏈嶅姟鐜鐨勪簨鍔$幆澧冨睘鎬?<br />鐢ㄦ埛浼氳瘽鍙ユ焺灞炴э細(OCI_HTYPE_SESSION) <br />OCI_ATTR_USERNAME鈥旇緗細璇濊璇佹墍浣跨敤鐨勭敤鎴峰悕 <br /> OCI_ATTR_PASSWORD鈥旇緗細璇濊璇佹墍浣跨敤鐨勭敤鎴峰彛浠?<br />鏈嶅姟鍣ㄥ彞鏌勶細(OCI_HTYPE_SEVER) <br />OCI_ATTR_NOBLOCKING_MODE鈥旇緗?璇誨彇鏈嶅姟鍣ㄨ繛鎺ワ細=TRUE鏃舵湇鍔″櫒榪炴帴璁劇疆涓洪潪闃誨鏂瑰紡 <br />璇彞鍙ユ焺錛?OCI_HTYPE_STMT) <br />OCI_ATTR_ROW_COUNT鈥斿彧璇伙紝涓哄綋鍓嶅凡澶勭悊鐨勮鏁幫紝鍏禿efault=1 <br />OCI_ATTR_STMT_TYPE鈥旇鍙栧綋鍓峉QL璇彞鐨勭被鍨嬶細 <br />Eg : OCI_STMT_BEGIN <br /> OCI_STMT_SELECT OCI_STMT_INSERT <br />OCI_STMT_UPDATE OCI_STMT_DELETE <br /> OCI_ATTR_PARAM_COUNT鈥旇繑鍥炶鍙ラ夋嫨鍒楄〃涓殑鍒楁暟 <br />4錛?鍏充簬杈撳嚭鍙橀噺瀹氫箟錛氬鏋滃湪璇彞鎵ц鍓嶅氨鐭ラ亾select璇彞鐨勯夋嫨鍒楄〃緇撴瀯錛屽垯瀹氫箟杈撳嚭鎿嶄綔鍙湪璋冪敤 OCISTMTExecute鍓嶈繘琛岋紝濡傛灉鏌ヨ璇彞鐨勫弬鏁頒負鐢ㄦ埛鍔ㄦ佽緭鍏ョ殑錛屽垯蹇呴』鍦ㄦ墽琛屽悗瀹氫箟銆?<br />5錛?OCI鍑芥暟榪斿洖鍊鹼細 <br />OCI_SUCCESS 鈥撳嚱鏁版墽琛屾垚鍔?(=0) <br />OCI_SUCCESS_WITH_INFO 鈥撴墽琛屾垚鍔燂紝浣嗘湁璇婃柇娑堟伅榪斿洖錛屽彲鑳芥槸璀﹀憡淇℃伅 <br />OCI_NO_DATA鈥斿嚱鏁版墽琛屽畬鎴愶紝浣嗘病鏈夊叾浠栨暟鎹?<br />OCI_ERROR鈥斿嚱鏁版墽琛岄敊璇?<br />OCI_INVALID_HANDLE鈥斾紶閫掔粰鍑芥暟鐨勫弬鏁頒負鏃犳晥鍙ユ焺錛屾垨浼犲洖鐨勫彞鏌勬棤鏁?<br />OCI_NEED_DATA鈥旈渶瑕佸簲鐢ㄧ▼搴忔彁渚涜繍琛屾椂鍒葷殑鏁版嵁 <br />OCI_CONTINUE鈥斿洖璋冨嚱鏁拌繑鍥炰唬鐮侊紝璇存槑鍥炶皟鍑芥暟闇瑕丱CI搴撴仮澶嶅叾姝e父鐨勫鐞嗘搷浣?<br />OCI_STILL_EXECUTING鈥旀湇鍔$幆澧冨緩绔嬪湪闈為樆濉炴ā寮忥紝OCI鍑芥暟璋冪敤姝e湪鎵ц涓?<br />6錛? OCI榪炴帴鏈変簩縐嶆柟寮忥細Blocking(闃誨鏂瑰紡)鍜宯on_Blocking(闈為樆濉炴柟寮?錛岄樆濉炴柟寮忓氨鏄綋璋冪敤 OCI鎿嶄綔鏃訛紝蹇呴』絳夊埌姝CI鎿? 浣滃畬鎴愬悗鏈嶅姟鍣ㄦ墠榪斿洖瀹㈡埛绔浉搴旂殑淇℃伅錛屼笉綆℃槸鎴愬姛榪樻槸澶辮觸銆傞潪闃誨鏂瑰紡鏄綋瀹㈡埛绔彁浜CI鎿嶄綔緇欐湇鍔″櫒鍚庯紝鏈嶅姟鍣ㄧ珛鍗寵繑鍥? OCI_STILL_EXECUTING淇℃伅錛岃屽茍涓嶇瓑寰呮湇鍔$鐨勬搷浣滃畬鎴愩?<br /><br /><br /> 瀵逛簬non-blocking鏂瑰紡錛屽簲鐢ㄧ▼搴忚嫢鏀跺埌涓涓狾CI鍑芥暟鐨勮繑鍥炲間負 OCI_STILL_EXECUTING鏃跺繀欏誨啀嬈″姣忎竴涓狾CI鍑芥暟鐨勮繑鍥炲艱繘琛屽垽鏂紝鍒ゆ柇鍏舵垚鍔熶笌鍚︺?<br /> 鍙氳繃璁劇疆鏈嶅姟鍣ㄥ睘鎬т負OCI_ATTR_NONBLOCKING_MODE鏉ュ疄鐜般傜郴緇熼粯璁ゆ柟寮忎負闃誨妯″紡. <br />7錛?OCI鍑芥暟璁劇疆鐨勬ā寮忔湁錛?<br /> OCI_DEFUALT:浣跨敤OCI榛樿鐨勭幆澧?<br /> OCI_THREADED錛氱嚎紼嬬幆澧冧笅浣跨敤OCI <br /> OCI_OBJECT錛氬璞℃ā寮?<br /> OCI_SHARED錛氬叡浜ā寮?<br /> OCI_EVENTS <br /> OCI_NO_UCB <br /> OCI_ENV_NO_MUTEX錛氶潪浜掓枼璁塊棶妯″紡 <br /> 鍏朵腑妯″紡鍙互鐢ㄩ昏緫榪愮畻絎﹁繘琛岃凱鍔狅紝灝嗗嚱鏁拌緗垚澶氬縐嶆ā寮忥細濡俶ode=OCI_SHREADED| OCI_OBJECT <br /><br />8錛?褰撳簲鐢ㄨ繘紼嬩笌鏈嶅姟鍣ㄦ柇寮榪炴帴鏃訛紝紼嬪簭娌℃湁浣跨敤OCITransCommit()榪涜浜嬪姟鐨勬彁浜わ紝鍒欐墍鏈夋椿鍔ㄧ殑浜嬪姟浼氳嚜鍔ㄥ洖婊氥? <br />9錛?OCI閲嶅畾涔夋暟鎹被鍨?<br /> typedef unsigned char ub1; <br />typedef signed char sb1; <br />typedef unsigned short ub2; <br />typedef signed short sb2; <br />typedef unsigned int ub4; <br />typedef signed int sb4; <br />typedef ub4 duword; <br />typedef sb4 dsword; <br />typedef dsword dword; <br /><br />10錛?鍦⊿QL璇彞鍑嗗鍚庯紝鍙互鐢∣CIAttrSet(0璁劇疆璇ヨ鍙ョ殑綾誨瀷灞炴CI_ATTR_STMT_TYPE錛屼互鍚庡彲璇誨彇璇彞灞炴э紝鏍規(guī)嵁灞炴у垎鍒繘琛屽鐞嗐?<br />11錛?鎵歸噺緇戝畾杈撳叆鍜屽畾涔夎緭鍑哄弬鏁幫細灝嗘暟鎹瓨鍏ヤ竴涓潤鎬佹暟鎹粍涓備竴嬈℃墽琛屽彲浠ユ彁浜ゆ垨璇誨彇澶氳璁板綍鍊箋?<br />12錛?緇撳悎鍗犱綅絎﹀拰鎸囩ず鍣ㄥ彉閲忥細 <br />鍗? 浣嶇錛氬湪紼嬪簭涓紝涓浜汼QL璇彞闇瑕佸湪紼嬪簭榪愯鏃舵墠鑳界‘瀹氬畠鐨勮鍙ユ暟鎹紝鍦ㄨ璁℃椂鍙敤涓涓崰浣嶇鏉ヤ唬鏇匡紝褰撶▼搴忚繍琛屾椂錛屽湪瀹冨噯澶囧ソ璇彞鍚庯紝蹇呴』涓烘瘡涓崰浣? 絎︽寚瀹氫竴涓彉閲忥紝鍗沖皢鍗犱綅絎︿笌紼嬪簭鍙橀噺鍦板潃緇撳悎錛屾墽琛屾椂錛孫racle灝變粠榪欎簺鍙橀噺涓鍙栨暟鎹紝騫跺皢瀹冧滑涓嶴QL璇彞涓璧蜂紶閫掔粰Oracle鏈嶅姟鍣ㄦ墽琛屻? OCI緇撳悎鍗犱綅絎︽椂錛屽畠?yōu)畣鍗犱綅绗︿笌绋嬪簭鍙橀噺鍏宠仈钃v鏉ワ紝騫跺悓鏃惰鎸囧嚭紼嬪簭鍙橀噺鐨勬暟鎹被鍨嬪拰鏁版嵁闀垮害銆?<br />濡傦細select * from test where name=:p1 and age>:p2 <br />錛歱1鍜岋細p2涓哄崰浣嶇 <br /><br />鎸? 紺哄櫒鍙橀噺錛氱敱浜庡湪Oracle涓紝鍒楀煎彲浠ヤ負NULL錛屼絾鍦–璇█涓病鏈塏ULL鍊鹼紝涓轟簡鑳戒嬌OCI紼嬪簭琛ㄨ揪NULL鍒楀鹼紝OCI鍑芥暟鍏佽紼嬪簭涓烘墍鎵ц璇? 鍙ヤ腑鐨勭粨鍚堝彉閲忓悓鏃跺叧鑱斾竴涓寚紺虹鍙橀噺鎴栨寚紺虹鍙橀噺鏁扮粍錛屼互璇存槑鎵緇撳悎鐨勫崰浣嶇鏄惁涓篘ULL鎴栨墍璇誨彇鐨勫垪鍊兼槸鍚︿負NULL錛屼互鍙婃墍璇誨彇鐨勫垪鍊兼槸鍚﹁鎴? 鍙栥?<br />闄QLT錛縉TY錛圫QL Named DataType錛夊錛屾寚紺虹鍙橀噺鎴栨寚紺虹鍙橀噺鏁扮粍鐨勬暟鎹被鍨嬩負sb2,鍏跺艱鏄庯細 <br />浣滀負杈撳叆鍙橀噺鏃訛細錛堝insert ,update璇彞涓級 <br />銆=-1錛歄CI紼嬪簭灝哊ULL璧嬬粰Oracle琛ㄧ殑鍒楋紝蹇界暐鍗犱綅絎︾粨鍚堢殑紼嬪簭鍙橀噺鍊?<br />>=0錛氬簲鐢ㄧ▼搴忓皢紼嬪簭鍙橀噺鍊艱祴緇欐寚瀹氬垪 <br />浣滀負杈撳嚭鍙橀噺鏃訛細錛堝select璇彞涓級 <br /> 錛?2錛氭墍璇誨彇鐨勫垪鏁版嵁闀垮害澶т簬紼嬪簭鍙橀噺鐨勯暱搴︼紝鍒欒鎴彇銆?<br /> =-1錛氭墍璇誨彇鐨勫間負NULL,杈撳嚭鍙橀噺鐨勫間笉浼氳鏀瑰彉銆?<br />=0錛氭暟鎹瀹屾暣璇誨叆鍒版寚瀹氱殑紼嬪簭鍙橀噺涓?<br />錛?錛氭墍璇誨彇鐨勫垪鏁版嵁闀垮害澶т簬紼嬪簭鍙橀噺鐨勯暱搴︼紝鍒欒鎴彇錛屾寚紺虹鍙橀噺鍊間負鎵璇誨彇鏁版嵁琚埅鍙栧墠鐨勫疄闄呴暱搴?<br />涓夛紟 OCI鍑芥暟璇存槑 <br />娉細綰㈣壊涓鴻緭鍏ュ弬鏁? 钃濊壊涓鴻緭鍑哄弬鏁? ,鍚﹀垯涓鴻緭鍏?鍑哄弬鏁?<br /><br /> 紺轟緥浠ヤ笅闈㈢粨鏋勪綔涓鴻鏄?<br /> sword swResult; <br />OCIBind* hBind; <br /> OCIDefine* hDefine; <br />OCIStmt *stmtp <br />OCIError *errhp錛?<br />OCIStmt *stmtp <br />OCISvcCtx * svchp <br />OCIEnv * envhpp; <br />OCISession * usrhp; <br />sb2 sb2aInd[30]; //鎸囩ず鍣ㄥ彉閲忥紝鐢ㄤ簬鍙栧彲鑳藉瓨鍦ㄧ┖鍊肩殑瀛楁 <br />Typedef strcut <br />{ <br />char tname[40]; <br />int age; <br />} t_std; <br />typedef struct <br />{ <br />sb2 sb2_tname[100]; <br /> sb2 sb2_age[100]; <br />} stdInd_T; //鎸囩ず鍣ㄦ暟緇?<br />typedef struct <br />{ <br />ub2 ub2_tname[100]; <br /> ub2 ub2_age[100]; <br />} stdLen_T; //瀛楁闀垮害 <br /><br />t_std tstd[100]; //鏁扮粍鍙橀噺錛岀敤浜庢壒閲忔搷浣?<br />stdInd_T tstdInd; <br />stdLen_T tstdLen; <br />stdLen_T tstdRet; <br /><br /> t_std std; <br /><br />鍚勫嚱鏁版暟鏄?<br />1錛庡垱寤篛CI鐜 <br />sword OCIEnvCreate( <br />OCIEnv **envhpp, //OCI鐜鍙ユ焺鎸囬拡 <br />ub4 mode, //鍒濆鍖栨ā寮忥細OCI_DEFAULT/OCI_THREADED 絳?<br />CONST dvoid *ctxp, <br />CONST dvoid *(*malicfp)(dvoid *ctxp,size_t size), <br />CONST dvoid *(ralocfp)(dvoid *ctxp,dvoid *memptr,size_t newsize), <br />CONST void *(*mfreefp)(dvoid *ctxp,dvoid *memptr), <br />Size_t xstramemsz, <br />Dvoid **usrmempp <br />) <br />eg : <br /> swResult = OCIEnvCreate(&envhpp, OCI_DEFAULT, NULL, NULL, NULL, NULL, 0, NULL); <br /><br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />return FALSE; <br /><br />sword OCIInitialize ( <br /> ub4 mode, <br /> CONST dvoid *ctxp, <br /> CONST dvoid *(*malocfp) (/* dvoid *ctxp, size_t size _*/), <br /> CONST dvoid *(*ralocfp) (/*_ dvoid *ctxp, dvoid *memptr, size_t newsize _*/), <br /> CONST void (*mfreefp) (/*_ dvoid *ctxp, dvoid *memptr _*/) <br />); <br /><br />sword OCIEnvInit ( <br />OCIEnv **envhpp, <br /> ub4 mode, <br /> size_t xtramemsz, <br /> dvoid **usrmempp <br /> ); <br />娉細 <br /> 鍦?i浠ュ悗錛屽彲鐢∣CIEnvCreate涓涓嚱鏁板氨鍙互鍒濆鍖栫幆澧冧簡錛岀浉褰撲簬OCIInitialize+ OCIEnvInit <br /><br />2錛庣敵璇?閲婃斁鍙ユ焺 <br /> sword OCIHandleAlloc( <br />CONST dvoid *parenth, //鏂扮敵璇峰彞鏌勭殑鐖跺彞鏌勶紝涓鑸負OCI鐜鍙ユ焺 <br />Dvoid **hndlpp, //鐢寵鐨勬柊鍙ユ焺 <br />Ub4 type, type, //鍙ユ焺綾誨瀷 <br />Size_t xtramem_sz, //鐢寵鐨勫唴瀛樻暟 <br />Dvoid **usrmempp //鐢寵鍒扮殑鍐呭瓨鍧楁寚閽?<br />) <br />娉細 <br /> 涓鑸渶瑕佺敵璇風殑鍙ユ焺鏈夛細 <br /> 鏈嶅姟鍣ㄥ彞鏌凮CIServer, 鍙ユ焺綾誨瀷OCI_HTYPE_SERVER <br />閿欒鍙ユ焺OCIError錛岀敤浜庢崟鑾稯CI閿欒淇℃伅, 鍙ユ焺綾誨瀷OCI_HTYPE_ERROR <br />浜嬪姟鍙ユ焺OCISession, 鍙ユ焺綾誨瀷OCI_HTYPE_SESSION <br />涓婁笅鏂囧彞鏌凮CISvcCtx, 鍙ユ焺綾誨瀷OCI_HTYPE_SVCCTX <br />SQL璇彞鍙ユ焺OCIStmt, 鍙ユ焺綾誨瀷OCI_HTYPE_STMT <br />eg: 鐢寵涓涓敊璇彞鏌凮CIError <br />swResult = OCIHandleAlloc(envhpp, (dvoid *)& errhp, OCI_HTYPE_ERROR, 0, NULL); <br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />{ <br /><br />return FALSE; <br />} <br /><br />閲婃斁鍙ユ焺 <br /> sword OCIHandleFree( <br />dvoid *hndlp, //瑕侀噴鏀劇殑鍙ユ焺 <br />ub4 type //鍙ユ焺綾誨瀷 <br />) <br /><br />eg: <br /> OCIHandleFree(stmtp, OCI_HTYPE_STMT) <br />3錛庤鍙?璁劇疆鍙ユ焺灞炴?<br /> sword OCIAttrSet( <br />dvoid *trgthndlp, //闇璁劇疆鐨勫彞鏌勫悕 <br />ub4 trghndltyp, //鍙ユ焺綾誨瀷 <br />dvoid *attributep, //璁劇疆鐨勫睘鎬у悕 <br />ub4 size, //灞炴у奸暱搴?<br />ub4 attrtype, //灞炴х被鍨?<br />OCIError *errhp //閿欒鍙ユ焺 <br />) <br />娉細涓鑸璁劇疆鐨勫睘鎬ф湁錛?<br /> 鏈嶅姟鍣ㄥ疄渚嬶細 <br />鍙ユ焺綾誨瀷OCI_HTYPE_SVCCTX錛屽睘鎬х被鍨婳CI_ATTR_SERVER <br /> 榪炴帴鏁版嵁鐨勭敤鎴峰悕錛?<br /> 鍙ユ焺綾誨瀷OCI_HTYPE_SESSION錛屽睘鎬х被鍨婳CI_ATTR_USERNAME <br />鐢ㄦ埛瀵嗙爜 <br /> 鍙ユ焺綾誨瀷OCI_HTYPE_SESSION錛屽睘鎬х被鍨婳CI_ATTR_PASSWORD <br />浜嬪姟錛? <br /> 鍙ユ焺綾誨瀷OCI_HTYPE_SVCCTX錛屽睘鎬х被鍨婳CI_ATTR_SESSION <br /><br />eg:璁劇疆鐢ㄦ埛鍚嶅拰瀵嗙爜 <br />char username[20],passwd[20]; <br /> strcpy(username,鈥漷iger鈥? <br />strcpy(passwd,鈥漜otton鈥? <br />swResult = OCIAttrSet(usrhp, OCI_HTYPE_SESSION, (text*) username, strlen(username), <br />OCI_ATTR_USERNAME, errhp); <br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />return FALSE; <br /><br />swResult = OCIAttrSet(usrhp, OCI_HTYPE_SESSION, (text*) passwd, strlen(passwd), <br />OCI_ATTR_PASSWORD, errhp); <br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />return FALSE; <br /><br /><br />sword OCIAttrGet( <br />dvoid *trgthndlp, //闇璇誨彇鐨勫彞鏌勫悕 <br />ub4 trghndltyp, //鍙ユ焺綾誨瀷 <br />dvoid *attributep, //璇誨彇鐨勫睘鎬у悕 <br />ub4 *sizep, //灞炴у奸暱搴?<br />ub4 attrtype, //灞炴х被鍨?<br />OCIError *errhp //閿欒鍙ユ焺 <br />) <br /><br />4錛庤繛鎺?鏂紑鏈嶅姟鍣?<br /> 澶氱敤鎴鋒柟寮忚繛鎺ワ細 <br /> sword OCIServerAttach( <br />OCIServer *srvhp,//鏈垵濮嬪寲鐨勬湇鍔″櫒鍙ユ焺 <br /> OCIError *errhp, <br /> CONST text *dblink,//鏈嶅姟鍣⊿ID <br /> sb4 dblink_len, <br /> ub4 mode //=OCI_DEFAULT,緋葷粺鐜?yōu)畣璁句负闃诲鏂瑰?<br />); <br /><br /> sword OCIServerDetach ( <br />OCIServer *srvhp, <br /> OCIError *errhp, <br /> ub4 mode //OCI_DEFAULT <br />); <br />鍗曠敤鎴鋒柟寮忚繛鎺ワ細 <br /> sword OCILogon ( <br />OCIEnv *envhp, <br /> OCIError *errhp, <br /> OCISvcCtx **svchp, <br /> CONST text *username, <br /> ub4 uname_len, <br /> CONST text *password, <br /> ub4 passwd_len, <br /> CONST text *dbname, <br /> ub4 dbname_len <br />); <br /><br />sword OCILogoff ( <br />OCISvcCtx *svchp <br /> OCIError *errhp <br />); <br /><br />5錛庡紑濮?緇撴潫涓涓細璇?<br />鍏堣璇佺敤鎴峰啀寤虹珛涓涓細璇濊繛鎺?<br /> sword OCISessionBegin ( <br />OCISvcCtx *svchp, //鏈嶅姟鐜鍙ユ焺 <br /> OCIError *errhp, <br /> OCISession *usrhp, //鐢ㄦ埛浼氳瘽鍙ユ焺 <br /> ub4 credt, //璁よ瘉綾誨瀷 <br /> ub4 mode //鎿嶄綔妯″紡 <br />); <br /><br /> *璁よ瘉綾誨瀷錛?<br />OCI_CRED_RDBMS:鐢ㄦ暟鎹簱鐢ㄦ埛鍚嶅拰瀵嗙爜榪涜璁よ瘉錛屽垯鍏堣璁劇疆OCI_ATTR_USERNAME鍜孫CI_ATTR_PASSWORD灞炴?<br />OCI_CRED_EXT:澶栭儴璁よ瘉錛屼笉闇瑕佽緗敤鎴峰拰瀵嗙爜 <br />OCI_DEFAULT錛氱敤鎴蜂細璇濈幆澧冨彧鑳借鎸囧畾鐨勬湇鍔″櫒鐜鍙ユ焺鎵璁劇疆 <br />OCI_SYSDBA錛氱敤鎴瘋鍏鋒湁sysdba鏉冮檺 <br />OCI_SYSOPER錛氱敤鎴瘋鍏鋒湁sysoper鏉冮檺 <br /><br /><br />Eg: <br />swResult = OCISessionBegin(svchp, errh,usrhp, OCI_CRED_RDBMS, OCI_DEFAULT); <br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />return FALSE; <br /><br /><br />sword OCISessionEnd ( <br />OCISvcCtx *svchp, <br /> OCIError *errhp, <br /> OCISession *usrhp, <br /> ub4 mode ); <br />6錛庤鍙栭敊璇俊鎭?<br /> sword OCIErrorGet ( <br />dvoid *hndlp, //閿欒鍙ユ焺 <br /> ub4 recordno,//浠庨偅閲岃鍙栭敊璇褰曪紝浠?寮濮?<br /> text *sqlstate,//宸插彇娑堬紝=NULL <br /> sb4 *errcodep, //閿欒鍙?<br /> text *bufp, //閿欒鍐呭 <br /> ub4 bufsiz, //bufp闀垮害 <br /> ub4 type //浼犻掔殑閿欒鍙ユ焺綾誨瀷 <br />=OCI_HTYPE_ERROR:閿欒鍙ユ焺 <br />=OCI_HTYPE_ENV錛氱幆澧冨彞鏌?<br />); <br />eg: <br /> ub4 ub4RecordNo = 1; <br />OCIError* hError <br />sb4 sb4ErrorCode; <br />char sErrorMsg[1024]; <br /><br />if (OCIErrorGet(hError, ub4RecordNo++, NULL, &sb4ErrorCode, (OraText*) sErrorMsg, sizeof(sErrorMsg), OCI_HTYPE_ERROR) == OCI_SUCCESS) <br /> printf(鈥渆rror msg:%s\n鈥? sErrorMsg); <br /><br /><br />7錛庡噯澶嘢QL璇彞 <br />sword OCIStmtPrepare ( <br />OCIStmt *stmtp,//璇彞鍙ユ焺 <br /> OCIError *errhp, <br /> CONST text *stmt, //SQL璇彞 <br /> ub4 stmt_len, //璇彞闀垮害 <br /> ub4 language, //璇彞鐨勮娉曟牸寮?OCI_NTV_SYNTAX <br />ub4 mode //=OCI_DEFAULT <br />); <br /><br />eg: <br /> char sSQL[1024]; <br /><br />sprintf(sSQL, 鈥渟elect table_name from user_tables鈥?; <br /><br />swResult = OCIStmtPrepare(stmtp errhp, (CONST OraText*)sSQL, strlen(sSQL), OCI_NTV_SYNTAX, OCI_DEFAULT); <br />if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) <br />return FALSE; <br /><br /><br /><br /><br />8錛?緇戝畾杈撳叆鍙傛暟 <br /><br />OCIBindArrayOfStruct() Set skip parameters for static array bind 錛屾暟緇勭粦瀹氾紝涓鑸敤浜庢壒閲忔搷浣? <br />OCIBindByName() Bind by name 鎸夊悕緇戝畾 <br />OCIBindByPos() Bind by position 鎸変綅緗粦瀹?寤鴻涓鑸寜姝ゆ柟寮忕粦瀹?<br />OCIBindDynamic() Sets additional attributes after bind with OCI_DATA_AT_EXEC mode <br />OCIBindObject() Set additional attributes for bind of named data type <br /><br />娉細 <br />OCIBindArrayOfStruct蹇呴』鍏堢敤OCIBindByPos鍒濆鍖栵紝鐒跺悗鍦∣CIBindArrayOfStruct涓畾涔夋瘡涓弬鏁版墍璺寵繃鐨勫瓧鑺傛暟銆?<br />濡傦細 <br /><br />瀛樺偍鏂瑰紡錛?<br /><br /><br /><br />絎竴鏉¤褰曠浜屾潯璁板綍 N <br /><br /><br /> SkipPara(瀹為檯灝辨槸緇撴瀯浣撻暱搴︼紝鍗蟲湰嬈℃墍鏈夊垪鐨勯暱搴﹀拰) <br /><br /><br /><br />sword OCIBindByName ( <br />OCIStmt *stmtp, //璇彞鍙ユ焺 <br /> OCIBind **bindpp,//緇撳悎鍙ユ焺,=NULL <br /> OCIError *errhp, <br /> CONST text *placeholder,//鍗犱綅絎﹀悕縐?<br /> sb4 placeh_len, //鍗犱綅絎﹂暱搴?<br /> dvoid *valuep, //緇戝畾鐨勫彉閲忓悕 <br /> sb4 value_sz, //緇戝畾鐨勫彉閲忓悕闀垮害 <br /> ub2 dty, //緇戝畾鐨勭被鍨?<br /> dvoid *indp, //鎸囩ず絎﹀彉閲忔寚閽?sb2綾誨瀷),鍗曟潯緇戝畾鏃朵負NULL, <br /> ub2 *alenp, //璇存槑鎵ц鍓嶅悗琚粨鍚堢殑鏁扮粍鍙橀噺涓悇鍏冪礌鏁版嵁瀹為檯鐨勯暱搴︼紝鍗曟潯緇戝畾鏃朵負NULL <br /> ub2 *rcodep,//鍒楃駭榪斿洖鐮佹暟鎹寚閽堬紝鍗曟潯緇戝畾鏃朵負NULL <br /> ub4 maxarr_len, //鏈澶氱殑璁板綍鏁?濡傛灉鏄崟鏉$粦瀹氾紝鍒欎負0 <br /> ub4 *curelep, //瀹為檯鐨勮褰曟暟,鍗曟潯緇戝畾鍒欎負NULL <br /> ub4 mode //=OCI_DEFAULT <br />); <br /><br />sword OCIBindByPos ( OCIStmt *stmtp, <br /> OCIBind **bindpp, <br /> OCIError *errhp, <br /> ub4 position,// 緇戝畾鐨勪綅緗?<br /> dvoid *valuep, <br /> sb4 value_sz, <br /> ub2 dty, <br /> dvoid *indp, <br /> ub2 *alenp, <br /> ub2 *rcodep, <br /> ub4 maxarr_len, <br /> ub4 *curelep, <br /> ub4 mode ); <br /><br />sword OCIBindArrayOfStruct ( <br />OCIBind *bindp,//緇戝畾鐨勭粨鏋勫彞鏌?鐢監(jiān)CIBindByPos瀹氫箟 <br /> OCIError *errhp, <br /> ub4 pvskip, //涓嬩竴鍒楄煩榪囩殑瀛楄妭鏁?* <br /> ub4 indskip,//涓嬩竴涓寚紺哄櫒鎴栨暟緇勮煩榪囩殑瀛楄妭鏁? <br /> ub4 alskip, //涓嬩竴涓疄闄呭艱煩榪囩殑瀛楄妭鏁?<br /> ub4 rcskip //涓嬩竴涓垪綰ц繑鍥炲艱煩榪囩殑瀛楄妭鏁?<br />); <br /><br />渚嬶細 <br />sword swResult; <br />OCIBind* hBind; <br />Ub4 rec_num; <br />Sql: insert into student values (:p1,:p2) <br /><br />鍗曟潯緇戝畾錛?<br />hBind = NULL; <br />swResult = OCIBindByPos(stmtp &hBind, errhp,1,ststd.tname, <br />sizeof(ststd.tname), SQLT_CHR, NULL, <br />NULL,NULL,0, NULL, OCI_DEFAULT); <br /><br /><br />鎵歸噺鍙栨暟鎹紝涓嬈″彇100鏉?<br />Sql: select username,age from student where username=:p1 and age=:p2 <br /><br />hBind = NULL; <br />swResult = OCIBindByPos(stmtp &hBind, errhp,1,tstd[0].tname, <br />sizeof(tstd[0].tname), SQLT_CHR, &tstdInd.sb2_usernmae[0], <br />&tstdLen.ub2_username[0],&tstdRet.ub2_username[0],100, &rec_num, OCI_DEFAULT); <br />swResult = OCIBindArrayOfStruct(hBind, errhp,sizeof(tstd [0]), sizeof(sb2), sizeof(ub2), sizeof(ub2)); <br /><br />9錛庢墽琛孲QL璇彞 <br />sword OCIStmtExecute ( <br />OCISvcCtx *svchp, //鏈嶅姟鐜鍙ユ焺 <br /> OCIStmt *stmtp, //璇彞鍙ユ焺 <br /> OCIError *errhp, <br /> ub4 iters, // ** <br /> ub4 rowoff, //** <br /> CONST OCISnapshot *snap_in, <br /> OCISnapshot *snap_out, <br /> ub4 mode //** <br />); <br /> **娉細 <br />1. iters:瀵逛簬select璇彞錛屽畠璇存槑涓嬈℃墽琛岃鍙栧埌buffer涓殑璁板綍琛屾暟錛屽鏋滀笉鑳界‘瀹歴elect璇彞鎵榪斿洖鐨勮鏁幫紝鍙皢iters璁劇疆涓?,鑰屽浜庡叾浠栫殑璇彞錛宨ters琛ㄧず榪欎簺璇彞鐨勬墽琛屾鏁幫紝姝ゆ椂iters涓嶈兘涓?銆?<br />2. rowoff:鍦ㄥ琛屾墽琛屾椂錛岃鍙傛暟琛ㄧず浠庢墍緇撳悎鐨勬暟鎹彉閲忎腑鐨勭鍑犳潯璁板綍寮濮嬫墽琛?鍗寵褰曞亸縐婚噺)銆?<br />3. mode錛?OCI_DEFAULT:default妯″紡 <br />=OCI_DESCRIBE_ONLY錛氭弿榪版ā寮忥紝鍙繑鍥為夋嫨鍒楄〃鐨勬弿榪頒俊鎭紝鑰屼笉鎵ц璇彞 <br />=OCI_COMMIT_ON_SUCCESS錛氳嚜鍔ㄦ彁浜ゆā寮忥紝褰撴墽琛屾垚鍔熷悗錛岃嚜鍔ㄦ彁浜ゃ?<br />=OCI_EXACT_FETCH:綺劇‘鎻愬彇妯″紡銆?<br />=OCI_BATCH_ERRORS錛? 鎵歸敊璇墽琛屾ā寮忥細鐢ㄤ簬鎵ц鏁扮粍鏂瑰紡鐨勬搷浣滐紝鍦ㄦ妯″紡涓嬶紝鎵歸噺insert ,update,delete鏃訛紝鎵ц榪囩▼涓換浣曚竴鏉¤褰曢敊璇笉浼氬鑷存暣涓? insert ,update,delete澶辮觸錛岀郴緇熻嚜鍔ㄤ細鏀墮泦閿欒淇℃伅錛岃屽湪闈炴壒閿欒鏂瑰紡涓嬶紝鍏朵腑鐨勪換浣曚竴鏉¤褰曢敊璇紝灝嗕細瀵艱嚧鏁翠釜鎿嶄綔澶辮觸銆?<br />Eg: <br />鎵ц涓嬈?<br />swResult = OCIStmtExecute(svchp, stmtp, errhp錛? <br /> 1, 0, NULL, NULL, OCI_DEFAULT); <br />鎵歸噺鎵ц100嬈★細 <br />swResult = OCIStmtExecute(svchp, stmtp, errhp錛? <br /> 100, 0, NULL, NULL, OCI_DEFAULT); <br /><br />10錛庡畾涔夎緭鍑哄彉閲?<br /><br />OCIDefineArrayOfStruct() Set additional attributes for static array define <br />OCIDefineByPos() Define an output variable association <br />OCIDefineDynamic() Sets additional attributes for define in OCI_DYNAMIC_FETCH mode <br />OCIDefineObject() Set additional attributes for define of named data type <br /><br />sword OCIDefineByPos ( <br />OCIStmt *stmtp, //璇彞鍙ユ焺 <br /> OCIDefine **defnpp,//瀹氫箟鍙ユ焺鈥旂敤浜庢暟緇勫彉閲?<br /> OCIError *errhp, <br /> ub4 position,//浣嶇疆搴忓彿(浠? 寮濮? <br /> dvoid *valuep, //杈撳嚭鐨勫彉閲忓悕 <br /> sb4 value_sz, //鍙橀噺闀垮害 <br /> ub2 dty, //鏁版嵁綾誨瀷 <br /> dvoid *indp, //鎸囩ず鍣ㄥ彉閲?鎸囩ず鍣ㄥ彉閲忔暟緇勶紝濡傛灉姝ゅ瓧孌靛彲鑳藉瓨鍦ㄧ┖鍊鹼紝鍒欒鎸囩ず鍣ㄥ彉閲忥紝鍚﹀垯鍗曟潯澶勭悊鏃朵負NULL <br /> ub2 *rlenp, //鎻愬彇鐨勬暟鎹暱搴?<br /> ub2 *rcodep, //鍒楃駭榪斿洖鐮佹暟緇勬寚閽?<br />ub4 mode //OCI_DEFAULT <br />); <br /><br /><br /><br /><br />sword OCIDefineArrayOfStruct ( <br />OCIDefine *defnp,//鐢監(jiān)CIDefineByPos瀹氫箟鐨勫彞鏌?<br /> OCIError *errhp, <br />ub4 pvskip, //涓嬩竴鍒楄煩榪囩殑瀛楄妭鏁?涓鑸氨鏄粨鏋勭殑澶у皬 <br /> ub4 indskip,//涓嬩竴涓寚紺哄櫒鎴栫粨鏋勮煩榪囩殑瀛楄妭鏁?=0 <br /> ub4 rlskip, //涓嬩竴涓疄闄呭艱煩榪囩殑瀛楄妭鏁?=0 <br /> ub4 rcskip //涓嬩竴涓垪鍒楃駭榪斿洖鍊艱煩榪囩殑瀛楄妭鏁?=0 <br />); <br /><br />sword OCIDefineDynamic ( <br />OCIDefine *defnp, <br /> OCIError *errhp, <br /> dvoid *octxp, <br /> OCICallbackDefine (ocbfp)(/*_ <br /> dvoid *octxp, <br /> OCIDefine *defnp, <br /> ub4 iter, <br /> dvoid **bufpp, <br /> ub4 **alenpp, <br /> ub1 *piecep, <br /> dvoid **indpp, <br /> ub2 **rcodep _*/) ); <br /><br />sword OCIDefineObject ( OCIDefine *defnp, <br /> OCIError *errhp, <br /> CONST OCIType *type, <br /> dvoid **pgvpp, <br /> ub4 *pvszsp, <br /> dvoid **indpp, <br /> ub4 *indszp ); <br /><br />eg: <br />鍗曟潯鏌ヨ <br />sql: select username,age from student where username=:p1; <br /> 濡傛灉姝ゅ瓧孌墊湁鍙兘鏈夌┖鍊鹼紝鍒?<br />hDefine = NULL; <br />swResult = OCIDefineByPos(stmtp &hDefine, errhp, 1, tstd.username, sizeof(tstd.username), SQLT_CHR, & sb2aInd[0], NULL, NULL, OCI_DEFAULT); <br />濡傛灉姝ゅ瓧孌墊病鏈夌┖鍊鹼紝鍒?<br />hDefine = NULL; <br />swResult = OCIDefineByPos(stmtp &hDefine, errhp, 1, tstd.username, sizeof(tstd.username), SQLT_CHR, NULL, NULL, NULL, OCI_DEFAULT); <br /><br /> 鎵歸噺鏌ヨ <br />select username,age from student where age>30; <br />hDefine = NULL; <br />swResult = OCIDefineByPos(stmtp, &hDefine, errhp, 1, &tstd[0].username, <br />sizeof(tstd[0].usenmae), SQLT_CHR, NULL, NULL, NULL, OCI_DEFAULT); <br /><br />swResult = OCIDefineArrayOfStruct(hDefine, errhp, sizeof(tstd[0]), 0, 0, 0); <br />11錛庢彁鍙栫粨鏋?<br />sword OCIStmtFetch ( <br />OCIStmt *stmtp,//璇彞鍙ユ焺 <br /> OCIError *errhp, <br /> ub4 nrows, //浠庡綋鍓嶄綅緗寮濮嬩竴嬈℃彁鍙栫殑璁板綍鏁幫紝瀵逛簬鏁版嵁鍙橀噺錛屽彲浠?gt;1,鍚﹀垯涓嶈兘>1 <br /> ub2 orientation,//鎻愬彇鐨勬柟鍚戯細OCI_FETCH_NEXT <br />ub4 mode //OCI_DEFAULT <br /> ) <br /><br />eg <br /> while ((swResult=OCIStmtFetch stmtp errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)) != OCI_NO_DATA) <br />{ <br />鈥︹?<br />} <br /><br />12錛庝簨鍔℃搷浣?<br />寮濮嬩竴涓簨鍔?<br />sword OCITransStart ( <br />OCISvcCtx *svchp, <br /> OCIError *errhp, <br /> uword timeout, //** <br /> ub4 flags ); <br />**娉細 <br />1錛?Timeout: <br />褰揻lag=OCI_TRANS_RESUME:瀹冭〃紺鴻繕鏈夊灝戠浜嬪姟灝嗚嬋媧?<br />=OCI_TRANS_NEW: 浜嬪姟鍝嶅簲鐨勮秴鏃舵椂闂?縐? <br />2錛?Flags:鎸囧畾涓涓柊鐨勪簨鍔¤繕鏄凡鏈変簨鍔?<br />=OCI_TRANS_NEW錛氬畾涔変竴涓柊鐨勪簨鍔?<br />=OCI_TRANS_RESUME <br /><br />鍑嗗涓涓簨鍔★細 <br />sword OCITransPrepare ( <br /> OCISvcCtx *svchp, <br /> OCIError *errhp, <br /> ub4 flags );//OCI_DEFAULT <br /><br />sword OCITransForget ( <br />OCISvcCtx *svchp, <br /> OCIError *errhp, <br /> ub4 flags );//OCI_DEFAULT <br /><br />鏂紑涓涓簨鍔★細 <br />sword OCITransDetach ( <br />OCISvcCtx *svchp, <br /> OCIError *errhp, <br />ub4 flags );//OCI_DEFAULT <br /><br /> 鎻愪氦涓涓簨鍔★細 <br /> sword OCITransCommit ( <br />OCISvcCtx *svchp, //鏈嶅姟鐜鍙ユ焺 <br /> OCIError *errhp, <br /> ub4 flags ); //OCI_DEFAULT <br />鍥炴粴涓涓簨鍔?<br />sword OCITransRollback ( <br />dvoid *svchp, <br /> OCIError *errhp, <br /> ub4 flags ); //OCI_DEFAULT <br /><br /><br />鍥涳紟 OCI鏁版嵁綾誨瀷涓嶤璇█鏁版嵁綾誨瀷瀵圭収琛?<br />琛ㄥ瓧孌電被鍨?銆銆銆銆銆OCI綾誨瀷 C綾誨瀷 澶囨敞 <br />Number(N) SQLT_UIN 銆int 鏃犵鍙鋒暣鍨?<br />Number(N) SQLT_INT 銆int 鏈夌鍙鋒暣鍨?<br />Number(n,m) SQLT_FLT 銆float 絎︾偣鏁?<br />Varchar2(N) Sqlt_chr銆銆Char 瀛楃涓?<br />Raw(N) 銆銆Sqlt_BIN 鍏蜂綋鐪嬩笉鍚岀殑瀹氫箟 浜岃繘鍒剁被鍨嬶紝澶氱敤浜庝竴涓粨鏋勫瓧孌?<br />DATE SQLT_DAT 鏃?鏈濂借漿鎹㈡垚瀛楃涓叉垨鏁板瓧<br /><br /><br /><p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=582980</p><img src ="http://m.shnenglu.com/guangping/aggbug/27605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/guangping/" target="_blank">闃垮厜</a> 2007-07-06 15:44 <a href="http://m.shnenglu.com/guangping/archive/2007/07/06/27605.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬VC++ 2005涓嬪紑鍙慉ctiveX鎺т歡鏃?灞炴у拰灞炴ч〉鎺т歡鍊煎叧鑱旂殑鍥版儜http://m.shnenglu.com/guangping/archive/2007/07/05/27513.html闃垮厜闃垮厜Thu, 05 Jul 2007 02:03:00 GMThttp://m.shnenglu.com/guangping/archive/2007/07/05/27513.htmlhttp://m.shnenglu.com/guangping/comments/27513.htmlhttp://m.shnenglu.com/guangping/archive/2007/07/05/27513.html#Feedback1http://m.shnenglu.com/guangping/comments/commentRss/27513.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/27513.html

鎴戝垰寮濮嬪涔燗ctiveX寮鍙?浣跨敤MFC銆傛垜瀵笰ctiveX鎺т歡鏂板涓涓悕涓?Caption",綾誨瀷涓篿nt鐨勫睘鎬?鎴戝湪ActiveX鐨勫睘鎬ч〉涓婃柊澧炰竴涓狤dit control,鎯抽氳繃璇dit control鏉ョ洿鎺ヨ緗?Caption"灞炴х殑鍊?
鐜板湪闂鏉ヤ簡:
鍦╒C6.0涓紑鍙戞椂鍙互閫氳繃class wizard鐨?澧炲姞鎴愬憳鍙橀噺"鏉ョ洿鎺ュ皢璇dit control涓?Caption"灞炴у叧鑱?鐢熸垚鐨勪唬鐮佸湪DoDataExchange鏂規(guī)硶涓涓?

void CCircPropPage::DoDataExchange(CDataExchange* pDX)
{
//{{AFX_DATA_MAP(CCircPropPage)
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption") );//(1)
DDX_Text(pDX, IDC_CAPTION, m_caption);
//}}AFX_DATA_MAP
DDP_PostProcessing(pDX);
}

鍏朵腑(1)琛岀殑鏈涓涓弬鏁?_T("Caption") ,灝辨槸璇dit control鎵鍏寵仈鐨勫睘鎬у悕.

浣? 鍦╒C++ 2005涓?鍗存病鏈夌洿鎺ュ皢Edit control涓庡睘鎬х浉鍏寵仈鐨勫姛鑳?鍦╒C++ 2005涓湪Edit control涓婂彸鍑?閫夋嫨"娣誨姞鍙橀噺",鎵撳紑"娣誨姞鎴愬憳鍙橀噺鍚戝",浣嗚鍚戝鍙兘娣誨姞涓嶦dit control鍏寵仈鐨?鎴愬憳鍙橀噺",鏃犳硶灝嗚Edit control 涓?Caption"灞炴у叧鑱?VC++ 2005鐢熸垚鐨勪唬鐮佸涓?

void CCircPropPage::DoDataExchange(CDataExchange* pDX)
{
//{{AFX_DATA_MAP(CCircPropPage)
//DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption") );//(1)//榪欐槸VC6鐢熸垚鐨勪唬鐮侊紝榪欓噷鐣欎綔鍙傜収
//DDX_Text(pDX, IDC_CAPTION, m_caption);//榪欎篃鏄疺C6鐢熸垚鐨?br />//}}AFX_DATA_MAP
DDP_PostProcessing(pDX); //(2)
DDX_Text(pDX, IDC_CAPTION1, m_caption1);//<--(3) VC++浜х敓鐨勪唬鐮?
}

鍏? 涓(3)琛屼負VC++ 2005浜х敓鐨勪唬鐮?瀹冨茍娌℃湁璋冪敤DDP_緋誨垪鐨勫嚱鏁?涔熷皢浠g爜鏀懼湪浜咥FX_DATA_MAP瀹忕殑澶栭潰銆佺(2)琛岀殑涓嬮潰(絎?琛屽嚱鏁扮殑鍔熻兘涓?緇撴潫灞? 鎬у間笌Control鐨勮漿鎹?,涔熷氨鏄VC++ 2005騫舵病鏈夊皢Edit control涓庡睘鎬у叧鑱旂殑鍔熻兘!??
铏界劧鍙互閫氳繃鎵嬪姩娣誨姞鏂瑰紡瑙e喅,浣嗘垜鎬昏寰梀C++ 2005搴旇鎻愪緵濡傛鍔熻兘,涓嶇煡閬撴湁娌℃湁鏈嬪弸閬囧埌榪囦笌鎴戠浉鍚岀殑闂,濡備綍瑙e喅涔?

闅鵑亾錛屾濡傚埆浜烘墍璇達紝VC2005姣擵C6鏄竴涓姝ャ?br />

闃垮厜 2007-07-05 10:03 鍙戣〃璇勮
]]>
MFC娑堟伅鏄犲皠鏈哄埗鐨勫墫鏋?瀛欓懌VC++璁插駭絎旇-(4)杞澆騫朵慨鏀?http://m.shnenglu.com/guangping/archive/2007/03/02/19106.html闃垮厜闃垮厜Fri, 02 Mar 2007 01:58:00 GMThttp://m.shnenglu.com/guangping/archive/2007/03/02/19106.htmlhttp://m.shnenglu.com/guangping/comments/19106.htmlhttp://m.shnenglu.com/guangping/archive/2007/03/02/19106.html#Feedback0http://m.shnenglu.com/guangping/comments/commentRss/19106.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/19106.html涓錛屾秷鎭槧灝勬満鍒?/p>

1錛屾秷鎭搷搴斿嚱鏁幫細錛堜緥錛氬湪CDrawView綾誨搷搴旈紶鏍囧乏閿寜涓嬫秷鎭級
1錛夊湪澶存枃浠?DrawView.h)涓0鏄庢秷鎭搷搴斿嚱鏁板師鍨嬨?br />//{{AFX_MSG(CDrawView) //娉ㄩ噴瀹?br />afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG //娉ㄩ噴瀹?br />璇存槑錛?br />鍦ㄦ敞閲婂畯涔嬮棿鐨勫0鏄庡湪VC涓伆鑹叉樉紺恒俛fx_msg瀹忚〃紺哄0鏄庣殑鏄竴涓秷鎭搷搴斿嚱鏁般?

榪欎釜娉ㄩ噴瀹忎負鐨勬槸璁〤lassWizard鑳藉鍒嗚鯨鍑哄摢浜涗唬鐮佹槸瀹冪敓鎴愮殑錛屽摢浜涙槸浣犺嚜宸卞啓鐨勩?br />浣犺嚜宸卞啓鐨勪唬鐮佽鍦ㄨ繖涓敞閲婁箣澶栵紝榪欐牱ClassWizard鍐嶄慨鏀規(guī)秷鎭槧灝勭殑鏃跺欏氨涓嶄細綆′綘鐨勪唬鐮佷簡銆?br />闄愪簬浠ュ墠鐨勭‖浠墮熷害錛孋lassWizard姣旇緝鍌誨啋錛屾墍浠ラ渶瑕佽繖浜涙敞閲婂畯鏉ュ畾浣嶃備粠7.0寮濮嬶紝灝變笉鍐嶉渶
瑕佷簡銆傛柊鐨勫睘鎬ч〉鑳藉鑷姩鍒嗘瀽浣犵殑浠g爜錛屼負浣犳坊鍔犳垨鑰呭垹闄や唬鐮侊紝鑰屾棤闇浠涔堢壒孌婃爣璁扮殑甯繖銆?br />鍥犳娉ㄩ噴瀹忓凡緇忔槸鍘嗗彶浜х墿浜嗐?/p>

2錛夊湪婧愭枃浠訛紙DrawView.cpp)涓繘琛屾秷鎭槧灝勩?br />BEGIN_MESSAGE_MAP(CDrawView, CView)
//}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
璇存槑錛?br />鍦ㄥ畯BEGIN_MESSAGE_MAP()涓嶦ND_MESSAGE_MAP()涔嬮棿榪涜娑堟伅鏄犲皠銆?br />瀹廜N_WM_LBUTTONDOWN()鎶婃秷鎭疻M_LBUTTONDOWN涓庡畠鐨勫搷搴斿嚱鏁癘nLButtonDown錛堬級鐩稿叧鑱斻傝繖鏍蜂竴鏃︽湁娑堟伅鐨勪駭鐢燂紝灝變細鑷姩璋冪敤鐩稿叧鑱旂殑娑堟伅鍝嶅簲鍑芥暟鍘誨鐞嗐?br />瀹廜N_WM_LBUTTONDOWN()瀹氫箟濡備笅錛?br />#define ON_WM_LBUTTONDOWN()
{ WM_LBUTTONDOWN, 0, 0, 0, AfxSig_vwp,
(AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonDown },
3錛夋簮鏂囦歡涓繘琛屾秷鎭搷搴斿嚱鏁板鐞嗐傦紙DrawView.cpp涓嚜鍔ㄧ敓鎴怬nLButtonDown鍑芥暟杞粨錛屽涓嬶級
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CView::OnLButtonDown(nFlags, point);
}
璇存槑錛?br />鍙褰撳鍔犱竴涓秷鎭搷搴斿鐞嗭紝鍦ㄤ互涓婁笁澶勮繘琛屼簡淇敼銆傚彲鍦ㄦ秷鎭搷搴斿嚱鏁伴噷娣誨姞娑堟伅澶勭悊浠g爜瀹屾垚瀵規(guī)秷鎭殑鍝嶅簲銆佸鐞嗐?/p>

2錛屾秷鎭搷搴旂殑鏂瑰紡錛?br />1錛? 鍦ㄥ熀綾諱腑閽堝姣忕娑堟伅鍋氫竴涓櫄鍑芥暟錛屽綋瀛愮被瀵規(guī)秷鎭搷搴旀椂鍊欙紝鍙鍦ㄥ瓙綾諱腑閲嶅啓榪欎釜铏氬嚱鏁板嵆鍙傜己鐐癸細MFC綾繪淳鐢熷眰嬈″緢澶氾紝濡傛灉鍦ㄥ熀綾誨姣忎釜娑堟伅榪涜铏氬嚱 鏁板鐞嗭紝閭d箞浠庡熀綾繪淳鐢熺殑姣忎釜瀛愮被閮藉皢鑳岃礋涓涓簽澶х殑铏氳〃錛岃繖鏍鋒氮璐瑰唴瀛橈紝鏁匨FC娌℃湁閲囧彇榪欎腑鏂瑰紡鑰岄噰鍙栨秷鎭槧灝勬柟寮忋?br />2錛夋秷鎭槧灝勬柟寮忥細 MFC鍦ㄥ悗鍙扮淮鎶や簡涓涓彞鏌勫拰C++瀵硅薄鎸囬拡瀵圭収琛紝褰撴敹鍒頒竴涓秷鎭悗錛岄氳繃娑堟伅緇撴瀯閲岃祫婧愬彞鏌勶紙鏌ュ鐓ц〃錛夊氨鍙壘鍒頒笌瀹冨搴旂殑涓涓狢++瀵硅薄鎸囬拡錛岀劧鍚? 鎶婅繖涓寚閽堜紶緇欏熀綾伙紝鍩虹被鍒╃敤榪欎釜鎸囬拡璋冪敤WindowProc()鍑芥暟瀵規(guī)秷鎭繘琛屽鐞嗭紝WindowProc()鍑芥暟涓皟鐢∣nWndMsg()鍑芥暟錛? 鐪熸鐨勬秷鎭礬鐢卞強澶勭悊鏄敱O(jiān)nWndMsg()鍑芥暟瀹屾垚鐨勩傜敱浜嶹indowProc()鍜孫nWndMsg()閮芥槸铏氬嚱鏁幫紝鑰屼笖鏄敤媧劇敓綾誨璞℃寚閽堣皟鐢? 鐨勶紝鐢卞鎬佹х煡鏈鎬葷粓璋冪敤瀛愮被鐨勩傚湪OnWndMsg()鍑芥暟澶勭悊鐨勬椂鍊欙紝鏍規(guī)嵁娑堟伅縐嶇被鍘繪煡鎵炬秷鎭槧灝勶紝鍒ゆ柇鎵鍙戠殑娑堟伅鏈夋病鏈夊搷搴斿嚱鏁幫紝鍏蜂綋鏂瑰紡鏄埌鐩稿叧 鐨勫ご鏂囦歡鍜屾簮鏂囦歡涓鎵炬秷鎭搷搴斿嚱鏁板0鏄庯紙浠庢敞閲婂畯//}AFX_MSG涔嬮棿瀵繪壘錛夛紝娑堟伅鏄犲皠錛堜粠瀹廈EGIN_MESSAGE_MAP(...)....END_MESSAGE_MAP()涔嬮棿瀵繪壘錛夛紝鏈緇堟壘鍒板搴旂殑娑堟伅澶勭悊鍑芥暟銆傚綋鐒訛紝濡傛灉瀛愮被涓病鏈夊娑堟伅榪涜澶勭悊錛屽垯娑堟伅浜ょ敱鍩虹被澶勭悊銆?br />璇存槑錛?br />virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);



闃垮厜 2007-03-02 09:58 鍙戣〃璇勮
]]>
鐢╳xDb錛圤DBC錛夎繛鎺xcel sheethttp://m.shnenglu.com/guangping/archive/2007/01/30/18180.html闃垮厜闃垮厜Tue, 30 Jan 2007 06:13:00 GMThttp://m.shnenglu.com/guangping/archive/2007/01/30/18180.htmlhttp://m.shnenglu.com/guangping/comments/18180.htmlhttp://m.shnenglu.com/guangping/archive/2007/01/30/18180.html#Feedback0http://m.shnenglu.com/guangping/comments/commentRss/18180.htmlhttp://m.shnenglu.com/guangping/services/trackbacks/18180.html 鍙戣〃涓婚: 鐢╳xDb錛圤DBC錛夎繛鎺xcel sheet
紕板埌涓椿瑕佽鍙朎xcel鏂囦歡涓殑鏁版嵁錛屾悳浜嗕竴涓婨xcel鏈塐DBC椹卞姩鍙互浣跨敤錛岀宸xWidgets鍙堟湁ODBC妯″潡錛岀湡鏄彲浠ョ渷鎺変笉灝戜簨鎯呫傛湰浠ヤ負鍙互杞繪澗鎼炲畾錛屼笉鏂欎竴鐩存病鏈夎兘榪炴帴涓婏紝閮侀椃浜嗕竴闃靛瓙錛屽悗鏉ュ湪RTFS鐨勫師鍒欎笅緇堜簬璋冭瘯鍑猴紝鍘熸潵鏄痺xDb鐨勪竴涓猙ug,淇鍜屾彁浜atch鍚庯紝闂瑙e喅銆?

bug submission:
https://sourceforge.net/tracker/?func=detail&atid=309863&aid=1494705&group_id=9863

浣跨敤鑼冧緥錛?
wxString s = wxT("DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';DBQ=")+filename;
wxDbConnectInf dbi;
dbi.SetConnectionStr(s);
dbi.AllocHenv();
db = new wxDb(dbi.GetHenv());
db->Open(&dbi);//this line failed if not patched


鍦ㄥ悗闈㈡彁鍙栨暟鎹殑鏃跺欙紝闇瑕佹彁渚泃able鍚嶅瓧錛孍xcel姣旇緝鐗規(guī)畩錛屼笉鏄洿瑙傜殑鍏崇郴鍨嬫暟鎹簱閭f牱鍙互鐪嬪埌table鐨勫瓨鍦ㄣ傛柟娉曟槸錛?
閫夊畾鏁版嵁鍖哄煙,鑿滃崟->鎻掑叆->鍚嶇О->瀹氫箟,閲岄潰杈撳叆鐨勫悕瀛楀氨鏄痶able鍚嶇О銆?

鎻愬彇table鐨勪緥瀛愶細
if(db->TableExists(wxT("ryzl"))){
UWORD n;
wxDbColInf *cols = db->GetColumns(wxT("ryzl"),&n);
if(cols == NULL){
wxMessageBox(wxT("no no get"));
}else{
wxMessageBox(wxString::Format(wxT("we got %d"),(int)n));
}
}else{
wxMessageBox(wxT("table ryzl not exists"));
}


闃垮厜 2007-01-30 14:13 鍙戣〃璇勮
]]>
wxODBC(wxWidgets)涓嬌鐢ㄩ┍鍔ㄧ▼搴忔柟寮忔墦寮鏁版嵁搴?/title><link>http://m.shnenglu.com/guangping/archive/2007/01/29/18150.html</link><dc:creator>闃垮厜</dc:creator><author>闃垮厜</author><pubDate>Mon, 29 Jan 2007 09:34:00 GMT</pubDate><guid>http://m.shnenglu.com/guangping/archive/2007/01/29/18150.html</guid><wfw:comment>http://m.shnenglu.com/guangping/comments/18150.html</wfw:comment><comments>http://m.shnenglu.com/guangping/archive/2007/01/29/18150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/guangping/comments/commentRss/18150.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/guangping/services/trackbacks/18150.html</trackback:ping><description><![CDATA[ <p>wxODBC(wxWidgets)涓嬌鐢ㄩ┍鍔ㄧ▼搴忔柟寮忔墦寮鏁版嵁搴?/p> <p>wxWidgets鐨勬枃妗d腑閮芥槸浣跨敤鍦ㄦ帶鍒墮潰鏉?鏁版嵁婧愪腑璁懼畾DSN鏉ュ垱寤篛DBC榪炴帴銆備絾鏄疄闄呬笂寰堝灝忓瀷鐨勫簲鐢紝鍙槸浣跨敤鏈満鐨勪竴涓狝ccess鏁版嵁搴撱傝岃姹備嬌鐢ㄨ呭涔燨DBC鐨凞SN閰嶇疆鏄庢樉鐨勫鍔犱簡杞歡鐨勪嬌鐢ㄩ毦搴︺傚洜姝わ紝鐮旂┒浜嗕竴涓媤xforum.org涓殑甯栧瓙錛岃瘯楠屾垚鍔燂紒鑼冧緥濡備笅錛?/p> <p>wxDbConnectInf *DbConnectInf = NULL; // 瀹氫箟鏁版嵁搴撹繛鎺ヤ俊鎭寚閽圖B connection information<br />wxDb *PodDB = NULL; // 瀹氫箟鏁版嵁搴撹繛鎺ユ寚閽圖atabase connection<br />wxDbTable *table = NULL; // 瀹氫箟鏁版嵁琛ㄦ寚閽圖ata table to access </p> <p>DbConnectInf = new wxDbConnectInf(0, wxT(""), wxT(""), wxT(""));//榪欓噷瀹氫箟鐨勫唴瀹瑰熀鏈病鐢紝浣嗕笉瀹氫箟浼氭姤閿?/p> <p>PodDB = new wxDb(DbConnectInf->GetHenv());</p> <p>bool DBfailOnDataTypeUnsupported=!true;//<br />if(!DB->Open(wxT("DRIVER=Microsoft Access Driver (*.mdb);DBQ=D:\\pod.mdb;UID=admin;"),DBfailOnDataTypeUnsupported))//浣跨敤椹卞姩紼嬪簭鐨勬柟寮忔墦寮鏁版嵁搴?br />{<br />if (PodDB->IsOpen())<br />{<br />// Connection is open, but the initialization of<br />// datatypes and parameter settings failed<br />return 0;<br />}<br />else<br />{<br />// Error opening datasource<br />//return HandleError(wxT("DB ENV ERROR: Cannot allocate ODBC env handle"));<br />return 0;<br />}<br />}<br />const wxString tableName = wxT("POD"); //瀹氫箟瑕佹搷浣滅殑琛ㄧ殑鍚嶇О<br />const UWORD numTableColumns = 8; //鎸囧嚭POD琛ㄤ腑鐨勫垪鏁幫紙columns錛?br />//寤虹珛鍒拌〃鐨勮繛鎺?br />table = new wxDbTable(PodDB, tableName, numTableColumns, wxT(""), wxDB_QUERY_ONLY, wxT(""));</p> <p>//灝嗗瓨鏀炬彁鍙栨暟鎹殑鍙橀噺娓呯┖<br />wxStrcpy(pPodPictureInfo->Title, wxT(""));<br />......</p> <p>//瀹氫箟鍒楃殑鏁版嵁鏍煎紡錛屽拰鍙栧嚭鐨勬牸寮忋?br />//姝ゅ闇瑕佹敞鎰忕殑鏄鏋滃墠闈㈡寚鏄庝簡numTableColumns涓簄鐨勮瘽錛屽氨涓瀹氳瀹氫箟n鏉?br />table->SetColDefs(0, wxT("Pod_Title"), DB_DATA_TYPE_VARCHAR, pPodPictureInfo->Title, SQL_C_WXCHAR, sizeof(pPodPictureInfo->Title), true, true);<br />......</p> <p>//鎵撳紑琛?br />if (!table->Open())<br />{<br />//An error occurred opening (setting up) the table"));<br />}</p> <p>//闄愬畾鍙栧嚭Pod_When鍒楀間負1982鐨勮(row)<br />table->SetWhereClause(wxT("Pod_When = '1982'"));</p> <p>//鎸夌収PodDate瀛楁鎺掑簭<br />table->SetOrderByClause(wxT("Pod_Date"));</p> <p>//鏍規(guī)嵁涓婇潰鐨勯檺瀹氫俊鎭墽琛屾煡璇㈡搷浣?br />if (!table->Query())<br />{<br />return HandleError(wxT("QUERY ERROR: "), table->GetDb());<br />//return 0;<br />}</p> <p>while (table->GetNext())//鎻愬彇鏌ヨ鍒扮殑琛?br />{<br />wxString msg; // Used for display messages<br />msg.Printf(wxT("Row #% lu --\nTitle : %s\nPodDate : %s\nWhere : %s\nWhen : %s\nWho : %s\nDisc : %s\nRelated : %s\nPhotoName :%s"),<br />table->GetRowNum(),<br />pPodPictureInfo->Title,<br />pPodPictureInfo->PodDate,<br />pPodPictureInfo->Where,<br />pPodPictureInfo->When,<br />pPodPictureInfo->Who,<br />pPodPictureInfo->Disc,<br />pPodPictureInfo->Related,<br />pPodPictureInfo->PhotoName<br />);<br />//媯鏌ヨ〃鎿嶄綔/鐜板疄鑾峰彇鐨凱OD淇℃伅<br />//wxSafeShowMessage(wxT("Pod_wxDbTable Test"),msg);<br />}</p> <p> <br />------琛ュ厖涓鐐?-----</p> <p>鍦⊿etColDefs涓叧鑱旂殑鍙橀噺涓嶈兘浣跨敤wxString錛屽彧鑳戒嬌鐢╳xChar[n]絳夋牸寮忋?/p> <p> </p> <p> <br />struct PodPictrueInfo<br />{<br />wxChar Title[100];<br />......</p> <p>}</p> <p> </p> <img src ="http://m.shnenglu.com/guangping/aggbug/18150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/guangping/" target="_blank">闃垮厜</a> 2007-01-29 17:34 <a href="http://m.shnenglu.com/guangping/archive/2007/01/29/18150.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬瀹岀編鐨凜++寮鍙戠幆澧冪殑鎬濊?/title><link>http://m.shnenglu.com/guangping/archive/2006/05/08/6745.html</link><dc:creator>闃垮厜</dc:creator><author>闃垮厜</author><pubDate>Mon, 08 May 2006 06:55:00 GMT</pubDate><guid>http://m.shnenglu.com/guangping/archive/2006/05/08/6745.html</guid><wfw:comment>http://m.shnenglu.com/guangping/comments/6745.html</wfw:comment><comments>http://m.shnenglu.com/guangping/archive/2006/05/08/6745.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/guangping/comments/commentRss/6745.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/guangping/services/trackbacks/6745.html</trackback:ping><description><![CDATA[鎴戜竴鐩村湪瀵繪眰鐫涓涓畬緹庣殑C++寮鍙戠幆澧冪粍鍚堬紝鎴戞湡鏈涚殑瀹岀編鏄繖鏍風殑錛? 1銆佽法騫沖彴鐨勶紝榪欏彲浠ヤ繚璇佹垜鐨勪竴嬈℃櫤鍔涘涔犳姇璧勶紝鑾峰緱澶氭柟闈㈢殑鏀跺疁銆? 2銆佸紑鏀劇殑錛岃嚦灝戜笉浼氬洜涓烘煇涓涓晢涓氳涓鴻屾秷浜★紝鍍廳ephi灝辨湁鐐瑰墠鏅笉濡欍? 3銆佸彲鑷敱閰嶇疆鐨勶紝鎴戝彲浠ヤ換鎰忛夋嫨鑷凡鍠滄鐨勭紪璇戝櫒錛岃屼笉鏄敱瀹冩潵鎸囧畾錛涙垜鍙互閫夋嫨鑷凡鍠滄鐨勭被搴擄紝鑰屼笉鏄潪瀹冭嚜宸茬殑搴撲笉鍙? 4銆佹湁鐫娓呯埥涓嶇箒鏉傦紝鍙嬪ソ鍙堜笉闇擱亾錛岀伒媧誨張涓嶅け涔犳儻鏍囧噯鐨勫彲瑙嗗寲鎿嶄綔鐜銆? 5銆佹槸鍩轟簬浠g爜鏁堢巼鏈楂樺寲涓虹洰鏍囷紝鍏煎鎬у崰絎竴浣嶇殑銆備笉瑕佸儚閭d簺闈炶瑁呬釜 .net鎴杍re榪欑被鐨勶紝璁ㄤ漢鐑︺? 6銆佸繀欏昏100%鏀寔C++鏈鏂版爣鍑嗙殑銆? 7銆佸綋鐒訛紝杞歡鐨勪綋縐笉鑳藉お澶э紝澶秷鑰楄祫婧愮殑杞歡錛屼篃鏄緢闅捐浜烘帴鍙楃殑銆? 鏍規(guī)嵁浠ヤ笂鐨勬兂娉曪細 鎴戠洰鍓嶇殑C++鐜鏄繖鏍風粍鍚堢殑錛? Code::blocks + mingw + wxWidget錛婦ialogBlocks 鍓嶄笁鏍烽兘鏄紑婧愮殑錛岃法騫沖彴鐨勶紝鍙嚜鐢遍厤緗殑銆傛渶鍚庝竴鏍鋒槸涓轟簡閰嶅悎wxWidget鑰岄夋嫨鐨勶紝鏄晢涓氳蔣浠訛紝榪欎笉鑳戒笉璇存槸涓仐鎲撅紝浣嗙洰鍓嶈繕娌℃壘鍒頒竴涓姛鑳戒笂鑳芥瘮鐨勪笂瀹冿紝鍙堝紑婧愬厤璐圭殑宸ュ叿銆傚彧鑳芥湡鏈涙湁鏇村鐨勫織鎰胯呬綔濂夌尞浜嗐備絾鏄疌ode::blocks鏈韓娌℃湁涓涓悊鎯崇殑GUI璁捐鍣ㄧ‘瀹炲お緙烘喚浜嗭紝瀹冭嚜韜殑smith铏界劧鏄疓UI璁捐鍣紝浣嗚繙榪樹笉鎴愮啛錛屾墍浠ュ彧濂介厤鍚圖ialogBlocks銆? 涓嶈兘涓嶈錛屼負浠涔堣繖涔堝騫存潵錛屽氨娌℃湁涓涓О蹇冪殑寮鍙戝伐鍏峰憿錛熻繖鏍風殑鏃ュ瓙鐪熺殑姘歌繙涓嶄細鍒版潵鍚楋紵 <img src ="http://m.shnenglu.com/guangping/aggbug/6745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/guangping/" target="_blank">闃垮厜</a> 2006-05-08 14:55 <a href="http://m.shnenglu.com/guangping/archive/2006/05/08/6745.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://1588vip.com" target="_blank">亚洲精品一二三</a>| <a href="http://555415.com" target="_blank">一区二区三区四区国产精品</a>| <a href="http://4534com.com" target="_blank">亚洲一区欧美二区</a>| <a href="http://556995.com" target="_blank">亚洲一区bb</a>| <a href="http://7115866.com" target="_blank">亚洲调教视频在线观看</a>| <a href="http://520637.com" target="_blank">亚洲综合日本</a>| <a href="http://xsjj10.com" target="_blank">久久久久国产精品人</a>| <a href="http://97aixxxx.com" target="_blank">久久免费黄色</a>| <a href="http://5657hh.com" target="_blank">欧美精品粉嫩高潮一区二区 </a>| <a href="http://llyx888.com" target="_blank">小处雏高清一区二区三区</a>| <a href="http://www49966.com" target="_blank">在线午夜精品</a>| <a href="http://86808a.com" target="_blank">久久国产精品亚洲va麻豆</a>| <a href="http://74w4.com" target="_blank">久久久五月婷婷</a>| <a href="http://193youwu.com" target="_blank">欧美全黄视频</a>| <a href="http://9911444.com" target="_blank">国产精品永久免费</a>| <a href="http://xiaobi13.com" target="_blank">亚洲国产成人不卡</a>| <a href="http://ccc159.com" target="_blank">亚洲男女毛片无遮挡</a>| <a href="http://97seee.com" target="_blank">久久午夜电影网</a>| <a href="http://sfrecq.com" target="_blank">亚洲精品视频在线看</a>| <a href="http://www18998.com" target="_blank">亚洲一区二区视频在线观看</a>| <a href="http://kkwwxx.com" target="_blank">亚洲欧美日韩一区</a>| <a href="http://681656.com" target="_blank">欧美大秀在线观看</a>| <a href="http://ssni888.com" target="_blank">国产精品视频xxxx</a>| <a href="http://131397.com" target="_blank">亚洲看片网站</a>| <a href="http://sdjzzs.com" target="_blank">久久精品一区二区三区不卡</a>| <a href="http://www-222kkk.com" target="_blank">国产午夜精品一区二区三区欧美</a>| <a href="http://www-893333.com" target="_blank">国内一区二区三区</a>| <a href="http://4008305555.com" target="_blank">亚洲一区图片</a>| <a href="http://pgpg520.com" target="_blank">欧美a级在线</a>| <a href="http://ategpu.com" target="_blank">亚洲欧美在线视频观看</a>| <a href="http://5cok.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://wy172.com" target="_blank">国产真实精品久久二三区</a>| <a href="http://638179.com" target="_blank">亚洲免费成人av</a>| <a href="http://3dprintingferuima.com" target="_blank">久久精品一区二区三区不卡牛牛 </a>| <a href="http://henhenai1.com" target="_blank">美女脱光内衣内裤视频久久影院</a>| <a href="http://lcqrsj.com" target="_blank">亚洲人成网站在线播</a>| <a href="http://73cao.com" target="_blank">亚洲免费婷婷</a>| <a href="http://yp889.com" target="_blank">欧美色大人视频</a>| <a href="http://jldianda.com" target="_blank">亚洲人成在线免费观看</a>| <a href="http://5110010.com" target="_blank">欧美一区中文字幕</a>| <a href="http://74va.com" target="_blank">亚洲综合第一页</a>| <a href="http://ipx758.com" target="_blank">国产精品白丝黑袜喷水久久久 </a>| <a href="http://lovehefei.com" target="_blank">欧美激情在线观看</a>| <a href="http://yh5557.com" target="_blank">亚洲第一在线综合网站</a>| <a href="http://kasimcoal.com" target="_blank">欧美在线免费观看视频</a>| <a href="http://1390744.com" target="_blank">亚洲激情视频在线观看</a>| <a href="http://fjccjq.com" target="_blank">麻豆成人精品</a>| <a href="http://t3gg.com" target="_blank">国内自拍视频一区二区三区</a>| <a href="http://bbww55.com" target="_blank">亚洲欧美网站</a>| <a href="http://666cmc.com" target="_blank">亚洲视频在线观看网站</a>| <a href="http://521531.com" target="_blank">欧美日韩福利视频</a>| <a href="http://www55747.com" target="_blank">亚洲欧洲日产国产网站</a>| <a href="http://www-232323.com" target="_blank">久久久精品日韩欧美</a>| <a href="http://www-772773.com" target="_blank">亚洲欧美一区二区在线观看</a>| <a href="http://shanghaijiagu.com" target="_blank">欧美国产日本</a>| <a href="http://1194123.com" target="_blank">亚洲最新中文字幕</a>| <a href="http://pron12.com" target="_blank">99re8这里有精品热视频免费 </a>| <a href="http://5s5s5s.com" target="_blank">国产女主播在线一区二区</a>| <a href="http://3315588.com" target="_blank">在线综合亚洲</a>| <a href="http://69xxx6.com" target="_blank">亚洲丝袜av一区</a>| <a href="http://kinghongs.com" target="_blank">欧美视频一区在线</a>| <a href="http://bx989.com" target="_blank">亚洲欧美影音先锋</a>| <a href="http://jm1688e.com" target="_blank">亚洲永久在线</a>| <a href="http://11b29.com" target="_blank">韩曰欧美视频免费观看</a>| <a href="http://myav2.com" target="_blank">久热精品视频在线观看一区</a>| <a href="http://jiucao8.com" target="_blank">久久不射电影网</a>| <a href="http://3315588.com" target="_blank">国语自产在线不卡</a>| <a href="http://gffffg.com" target="_blank">美乳少妇欧美精品</a>| <a href="http://yw8333.com" target="_blank">欧美jjzz</a>| <a href="http://44ie.com" target="_blank">亚洲一区二区三区四区视频</a>| <a href="http://160160160.com" target="_blank">99热免费精品</a>| <a href="http://imaben.com" target="_blank">国产精品美女久久久久久免费</a>| <a href="http://www-452.com" target="_blank">亚洲欧美精品在线观看</a>| <a href="http://88848885.com" target="_blank">亚洲欧美日本国产专区一区</a>| <a href="http://zhijiasd.com" target="_blank">国产精品久久一区二区三区</a>| <a href="http://096577.com" target="_blank">欧美一站二站</a>| <a href="http://www-876810.com" target="_blank">久久久不卡网国产精品一区</a>| <a href="http://xccp4888.com" target="_blank">一区在线视频</a>| <a href="http://www520590.com" target="_blank">亚洲黄色成人久久久</a>| <a href="http://www-222304.com" target="_blank">欧美日韩视频在线一区二区观看视频</a>| <a href="http://xp1025.com" target="_blank">夜夜狂射影院欧美极品</a>| <a href="http://roujizz.com" target="_blank">亚洲视频图片小说</a>| <a href="http://www497171a.com" target="_blank">亚洲免费综合</a>| <a href="http://817794.com" target="_blank">亚洲国产精品热久久</a>| <a href="http://nbpacking.com" target="_blank">亚洲精品日韩在线</a>| <a href="http://91ymz.com" target="_blank">国产免费亚洲高清</a>| <a href="http://2111952.com" target="_blank">欧美福利视频一区</a>| <a href="http://569688.com" target="_blank">国产精品高清一区二区三区</a>| <a href="http://wwwmm131.com" target="_blank">久久激情中文</a>| <a href="http://18av-2.com" target="_blank">欧美精品粉嫩高潮一区二区</a>| <a href="http://4123123.com" target="_blank">亚洲字幕在线观看</a>| <a href="http://96ykm.com" target="_blank">欧美一区二区三区免费看</a>| <a href="http://mide776.com" target="_blank">亚洲国产天堂久久国产91</a>| <a href="http://04781900.com" target="_blank">日韩一级不卡</a>| <a href="http://621765.com" target="_blank">激情综合色综合久久</a>| <a href="http://y65o.com" target="_blank">亚洲精品国产精品乱码不99</a>| <a href="http://227c7.com" target="_blank">国产精品亚洲欧美</a>| <a href="http://jiarenlady.com" target="_blank">亚洲国产精品成人综合</a>| <a href="http://tk263.com" target="_blank">欧美亚州韩日在线看免费版国语版</a>| <a href="http://99cheats.com" target="_blank">欧美一区三区二区在线观看</a>| <a href="http://www-787788.com" target="_blank">久久成人一区</a>| <a href="http://szth186.com" target="_blank">亚洲一区在线看</a>| <a href="http://707fx.com" target="_blank">欧美v亚洲v综合ⅴ国产v</a>| <a href="http://521mu.com" target="_blank">欧美一区二区三区免费大片</a>| <a href="http://4446666.com" target="_blank">蜜桃久久av</a>| <a href="http://bandycup.com" target="_blank">久久岛国电影</a>| <a href="http://sdjinchuan.com" target="_blank">欧美视频免费在线观看</a>| <a href="http://cytus2wiki.com" target="_blank">免费成人在线观看视频</a>| <a href="http://shaijia123.com" target="_blank">欧美日韩综合</a>| <a href="http://chengli88.com" target="_blank">亚洲国产精彩中文乱码av在线播放</a>| <a href="http://329374.com" target="_blank">欧美午夜片欧美片在线观看</a>| <a href="http://wwwmy77757.com" target="_blank">久久久欧美精品sm网站</a>| <a href="http://vod3366.com" target="_blank">国产精品美女久久福利网站</a>| <a href="http://xashp.com" target="_blank">亚洲国产精品久久久久婷婷884</a>| <a href="http://4254888.com" target="_blank">国产精品美女久久久</a>| <a href="http://www-tk3333.com" target="_blank">亚洲日本中文字幕免费在线不卡</a>| <a href="http://yichenep.com" target="_blank">狠狠色综合播放一区二区</a>| <a href="http://eee104.com" target="_blank">99视频精品全部免费在线</a>| <a href="http://hbstjsgc.com" target="_blank">亚洲国产片色</a>| <a href="http://o10669.com" target="_blank">久久久国产午夜精品</a>| <a href="http://99999zc.com" target="_blank">性欧美长视频</a>| <a href="http://zhongrenma.com" target="_blank">国产精品成人一区二区三区夜夜夜</a>| <a href="http://7755cc.com" target="_blank">欧美国产精品专区</a>| <a href="http://92ebook.com" target="_blank">一区视频在线</a>| <a href="http://543422.com" target="_blank">久久综合99re88久久爱</a>| <a href="http://seyuav4.com" target="_blank">久久久国产成人精品</a>| <a href="http://baoyu1313.com" target="_blank">国产精品久久久久久久久果冻传媒 </a>| <a href="http://www89999.com" target="_blank">久久久久亚洲综合</a>| <a href="http://yy0754.com" target="_blank">欧美一区二区三区久久精品茉莉花 </a>| <a href="http://huayoue.com" target="_blank">亚洲性视频网址</a>| <a href="http://4006616309.com" target="_blank">亚洲午夜久久久久久久久电影院 </a>| <a href="http://799858.com" target="_blank">欧美激情精品久久久</a>| <a href="http://pppp95.com" target="_blank">久久亚洲精品网站</a>| <a href="http://ad377.com" target="_blank">国产三级精品在线不卡</a>| <a href="http://8888590.com" target="_blank">亚洲性色视频</a>| <a href="http://ca88tv.com" target="_blank">久久精品国产99国产精品澳门</a>| <a href="http://www-733999.com" target="_blank">欧美中文日韩</a>| <a href="http://my736.com" target="_blank">性久久久久久</a>| <a href="http://by5263.com" target="_blank">国产美女精品一区二区三区</a>| <a href="http://jiucao8.com" target="_blank">日韩午夜在线电影</a>| <a href="http://gaobb52.com" target="_blank">亚洲视屏一区</a>| <a href="http://lingshidu.com" target="_blank">国产精品久久久久久久7电影</a>| <a href="http://mysuteng.com" target="_blank">99国产精品自拍</a>| <a href="http://91porn42.com" target="_blank">在线性视频日韩欧美</a>| <a href="http://sz-changrong.com" target="_blank">欧美日韩午夜在线</a>| <a href="http://jorhom.com" target="_blank">在线视频免费在线观看一区二区</a>| <a href="http://444398.com" target="_blank">亚洲自拍偷拍福利</a>| <a href="http://127mingdao.com" target="_blank">国产精品永久免费</a>| <a href="http://aass22.com" target="_blank">欧美专区日韩视频</a>| <a href="http://by3259.com" target="_blank">欧美国产精品久久</a>| <a href="http://9881600.com" target="_blank">一区二区国产在线观看</a>| <a href="http://shght.com" target="_blank">欧美午夜视频网站</a>| <a href="http://hzhzzz.com" target="_blank">亚洲制服av</a>| <a href="http://scqike.com" target="_blank">免费欧美高清视频</a>| <a href="http://246767.com" target="_blank">亚洲日本国产</a>| <a href="http://566805.com" target="_blank">国产精品区一区二区三</a>| <a href="http://895658.com" target="_blank">久久成人在线</a>| <a href="http://6aaee.com" target="_blank">亚洲欧洲一区二区三区</a>| <a href="http://zzzz80.com" target="_blank">亚洲综合三区</a>| <a href="http://15149cc.com" target="_blank">影音先锋亚洲电影</a>| <a href="http://2312138.com" target="_blank">欧美日韩在线不卡</a>| <a href="http://rljyy.com" target="_blank">久久国产色av</a>| <a href="http://www-136445.com" target="_blank">亚洲人成毛片在线播放</a>| <a href="http://www333444123.com" target="_blank">亚洲主播在线播放</a>| <a href="http://388268.com" target="_blank">国内激情久久</a>| <a href="http://ll992.com" target="_blank">欧美日韩播放</a>| <a href="http://zzzz80.com" target="_blank">欧美在线观看天堂一区二区三区</a>| <a href="http://域名" target="_blank">亚洲大胆在线</a>| <a href="http://zgslwtc.com" target="_blank">欧美一区二区三区另类</a>| <a href="http://ncyy4.com" target="_blank">亚洲激情成人在线</a>| <a href="http://xiehaihua.com" target="_blank">国产精品你懂的在线欣赏</a>| <a href="http://instantptt.com" target="_blank">久久九九国产精品</a>| <a href="http://lutube666.com" target="_blank">亚洲美女在线视频</a>| <a href="http://cao2014.com" target="_blank">久热精品视频在线</a>| <a href="http://www-90422.com" target="_blank">亚洲欧美日本在线</a>| <a href="http://qiezisp2.com" target="_blank">在线观看日韩国产</a>| <a href="http://4y9k.com" target="_blank">国产精品每日更新</a>| <a href="http://emu160.com" target="_blank">欧美韩日一区二区</a>| <a href="http://miya2223.com" target="_blank">午夜一区不卡</a>| <a href="http://138128.com" target="_blank">99国产一区二区三精品乱码</a>| <a href="http://wwwsenvpu.com" target="_blank">久久久久久久精</a>| <a href="http://qiansemf.com" target="_blank">亚洲午夜影视影院在线观看</a>| <a href="http://scqike.com" target="_blank">国内成人精品2018免费看</a>| <a href="http://sh-hxjdkj.com" target="_blank">欧美经典一区二区三区</a>| <a href="http://www-26333com.com" target="_blank">性欧美xxxx大乳国产app</a>| <a href="http://o10669.com" target="_blank">亚洲日本电影在线</a>| <a href="http://7mxing.com" target="_blank">久久综合中文</a>| <a href="http://lfxhfh.com" target="_blank">午夜精品美女自拍福到在线 </a>| <a href="http://lymzdd.com" target="_blank">亚洲欧美日韩国产综合</a>| <a href="http://baostat.com" target="_blank">欧美高清免费</a>| <a href="http://y08877.com" target="_blank">久久久久久久网</a>| <a href="http://writeingo.com" target="_blank">亚洲免费在线视频</a>| <a href="http://www38ccc.com" target="_blank">亚洲精品一级</a>| <a href="http://fdgkinetic.com" target="_blank">亚洲高清在线观看</a>| <a href="http://czsanlin.com" target="_blank">黄色亚洲大片免费在线观看</a>| <a href="http://p5555ww.com" target="_blank">欧美性大战久久久久久久</a>| <a href="http://7555hh.com" target="_blank">免费黄网站欧美</a>| <a href="http://erzhuzi.com" target="_blank">久久精品一区蜜桃臀影院</a>| <a href="http://ww9494.com" target="_blank">中文有码久久</a>| <a href="http://www-333304.com" target="_blank">99热这里只有成人精品国产</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>