锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍏徃鐨勮蔣浠舵湁涓涓被浼兼粴鍔ㄦ潯鐨勮嚜鍒舵帶浠訛紝鍏充簬姝ゆ帶浠朵笂鐨勫皬婊戝潡瀹氫箟鐨勭偣鍑誨拰鎷栧姩鏄湁涓嶅悓鐨勫搷搴斿嚱鏁?閫氳繃鍦∣nLButtonDown,OnLButtonUp, OnMouseMove涓鏍囪瘑榧犳爣鍔ㄤ綔鐨勫彉閲忚繘琛岃祴鍊煎拰姣旇緝鏉ュ畾涔夋渶緇堢殑榧犳爣琛屼負)
浣嗘槸鍦ㄦ祴璇曚腑鍙戠幇浜嗕竴涓狟UG,榧犳爣鐐瑰嚮鍚庣殑鍙嶅簲涓庤瀹氫笉涓鑷達紝鏈疄鐜伴瀹氬姩浣溿?/p>
鎷垮埌BUG鍚庯紝鍏堣榪涜闂澶嶇幇錛岄棶棰樻潵浜嗭細鍦ㄦ垜鑷繁鐨勬満鍣ㄤ笂璋冭瘯鏃朵笌鎻愪氦BUG琛ㄧ幇涓鑷達紝鍙︿竴浣嶅悓浜嬬殑鏈哄櫒涓婁篃涓鑷達紝浣嗙涓変綅鐨勬満鍣ㄤ笂鏃犺鎬庝箞璇曢兘鏈嚭鐜癇UG鎵鎻忚堪鐨勬儏鍐點?/p>
灝嗕唬鐮佹嬁鍒扮涓夊彴鏈哄櫒涓婅皟璇曪紝鍙戠幇鏃犺榧犳爣鎬庝箞鐐瑰嚮錛屾繪槸鍒ゆ柇涓烘嫋鍔ㄥ姩浣滐紝鍚庢潵鎹簡榧犳爣銆佷繚鎸侀紶鏍囦笉鍔ㄧ瓑鍔炴硶涔熸槸鎷栧姩銆傚ソ鍍忔槸緋葷粺鑷姩浼氭妸鐐瑰嚮鍔ㄤ綔杞崲涓轟竴涓偣鍑誨拰涓涓?浣嶇Щ鐨勭Щ鍔ㄤ竴鏍楓?/p>
鐒跺悗鎴戣寰楀彲鑳芥槸緋葷粺璁懼畾鐨勯棶棰樸傚皢榧犳爣璁懼畾璋冩垚榛樿錛岄棶棰樹緷鏃с傜劧鍚庡張鍋滄浜嗘満鍣ㄤ笂涓浜涘叾瀹冭蔣浠躲佹湇鍔¢棶棰樹緷鏃с傜洿鍒版湁涓嬈″拷鐒跺緱鍒頒簡BUG鎻忚堪涓殑鐜拌薄錛屾墠鍙戠幇鏄叧闂簡鎼淴杈撳叆娉曠殑鍘熷洜銆傚悗鏉ュ啀璇曞彂鐜板彧瑕佸紑鐫瀹冿紝鎬諱細鍒ゆ柇涓烘嫋鍔紝鍏抽棴璇ヨ緭鍏ユ硶鍚庤〃鐜板氨姝e父浜嗐?/p>
寮濮婤UG涓嶈兘澶嶇幇鎬繪兂鐨勬槸榧犳爣璁懼畾銆佽蔣浠跺啿紿佺殑闂錛屽疄鍦ㄦ病鎯沖埌鏄皬灝忕殑杈撳叆娉曞紩璧風殑銆備及璁℃槸杈撳叆娉曞唴閮ㄤ負浜嗗疄鐜頒簯榪欎釜錛屼簯閭d釜鑰屽湪榧犳爣涓婃悶浠涔堥浜嗗惂銆?/p>
騫鎬簭鎴戣嚜宸變笉鐢ㄨ杈撳叆娉曘?/p>
涓涓畝鍗曠殑灝忛棶棰樿垂浜嗚繖涔堝璇濓紝琛ㄨ堪鑳藉姏涓嶅ソ錛屼互鍚庤繕闇瑕佹洿鍔犲姫鍔涖?/p> _APS_NEXT_COMMAND_VALUE is the next symbol value that will be used for a command identification. The valid range for command symbol values is 0x8000 to 0xDFFF. 涓嬩竴鍊嬪懡浠ょ殑ID錛?x8000---0xDFFF _APS_NEXT_CONTROL_VALUE is the next symbol value that will be used for a dialog control. The valid range for dialog control symbol values is 8 to 0xDFFF. 涓嬩竴鍊嬪皪瑭辨鎺т歡鐨処D錛?---0xDFFF _APS_NEXT_SYMED_VALUE is the next symbol value that will be issued when you manually assign a symbol value using the New command in the Symbol Browser. 鍦ㄧ铏熺忚鍣ㄤ腑浣跨敤鏂板鍛戒護閲岀殑闋愮疆ID
]]>
3 local l_max_x = poly[1].X;
4 local l_max_y = poly[1].Y;
5 local l_min_x = l_max_x;
6 local l_min_y = l_min_y;
7 for i = 2, #poly do
8 if l_max_x < poly[i].x then
9 l_max_x = poly[i].x;
10 end
11 if l_max_y < poly[i].y then
12 l_max_y = poly[i].y;
13 end
14 if l_min_x > poly[i].y then
15 l_min_x = poly[i].y;
16 end
17 if l_min_y > poly[i].y then
18 l_min_y = poly[i].y;
19 end
20 end
21 return {l_min_x,l_max_x,l_min_y,l_max_y};
22 end
23
24 --鐐規槸鍚﹀湪澶氳竟褰㈠鍥寸煩褰腑
25 function IsPtInPolyRect(p, poly)
26 local rect = GetPolyOutRect(p, poly);
27 if p.x < rect[1] or p.x > rect[2] or p.y < rect[3] or p.y > rect[4] then
28 return false;
29 else
30 return true;
31 end
32 end
33
34 --鍒ゆ柇鐐瑰湪澶氳竟褰㈠唴true or false,鐐規濂藉湪澶氳竟褰㈣竟涓婃椂榪斿洖鍊間笉瀹?br />35 function IsPtInPoly(p, poly)
36 if false == IsPtInPolyRect(p, poly) then
37 return false;
38 end
39 local l_odd = false;
40 local j = #poly;
41 for i = 1, #poly do
42 if ((poly[i].y < p.y and poly[j].y >= p.y) or poly[j].y < p.y and poly[i].y >= p.y)) and (poly[i].x <= p.x and poly[j].x <= p.x) then
43 if poly[i].x + (p.y - poly[i].y)*(poly[j].x - poly[i].x) / (poly[j].y - poly[i].y) < p.x then
44 l_odd = not l_odd;
45 end
46 end
47 end
48 return l_odd;
49 end
50
51 local p = {x = 2, y = 2.5};
52 local poly = {{x = 1, y = 2},{x = 2, y = 3},{x = 3, y = 2}}
53 local result = IsPtInPoly(p, poly);
54 print(result);
55 --鐢變簬鏃犳硶浠庝唬鐮佷腑鐩存帴澶嶅埗錛岀函鎵嬫暡浠g爜錛岃嫢鏈夌枏婕忥紝璇風暀璦銆?br />56 --浠g爜鍙傝冧簡緗戜笂浼楀鍓嶈緢鐨勬暀紼嬶紝涓嶄竴涓鍒楀嚭錛屾劅璋㈠墠杈?span style="color: #000000; ">
57
58
59
]]>
2 Type_01=1
3 Name_02=yyy Name_02=yyy
4 Type_02=1
5 Name_03=ffd Name_03=ffd
6 Type_03=2
7 Name_04=ssd Name_04=ssd
8 Type_04=2
9 .
.
10 Name_97=qqq Name_97=qqq
11 Type_97=49
12 Name_98=eew Name_98=eew
13 Type_98=49
14 Name_99=zzz Name_99=zzz
15 Type_99=50
姝ラ錛?br />
棣栧厛鎴戜滑緇欐瘡涓琛屼笅闈㈡彃鍏ュ悓鏍風殑鍐呭錛?vim xx,yyg/^/norm oType_01=1
瑙i噴錛歺x,yy 鎸囧畾鑼冨洿 鎵цg鍛戒護錛岀敤^鍖歸厤姣忎竴琛岋紝 norm鐨勪綔鐢?鏄妸鍚庨潰鐨勫唴瀹瑰綋浣滄櫘閫氭ā寮忎笅鐨勬寜閿?
oType_01=1 灝變細鍦ㄤ笅闈㈡柊鍔犱竴騫跺啓鍏ype_01=1
鐒跺悗灝嗘柊鎻掑叆鐨勮浣滅浉搴斾慨鏀? xx,yys#Type_\zs\d\+\ze#\=(line(".")+1)/2# (榪欐潯鍛戒護鍙互鍙傝?a href="http://www.shnenglu.com/NWAO/archive/2014/08/26/208141.html">榪欑瘒鏂囩珷鐞嗚В)
]]>
涓銆傞檺鍒惰繙紼嬫闈P
a 鍒涘緩涓や釜 IP絳涢夊櫒 [allow] 浠?192.168.1.0/24 鍒?鎴戠殑IP鍦板潃 绔彛3389
[deny] 浠?浠諱綍IP 鍒?鎴戠殑IP 绔彛3389
b 鍒涘緩涓や釜絳涢夊櫒鎿嶄綔 [allow] 璁稿彲
[deny] 紱佹
a 棣栧厛鍏佽鎴戜滑鑷繁鐨勫唴緗慖P 鐐瑰嚮娣誨姞 閫変腑 鍚嶅瓧涓篬allow]鐨処P絳涢夊櫒, 鍐嶉夋嫨 [allow]鐨勭瓫閫夊櫒鎿嶄綔, 鐢變簬榪欓噷鐨勬搷浣滄垜閫変簡“璁稿彲”,鍚庨潰鐨勯獙璇佹柟寮忎笉蹇呴夋嫨銆?br /> b 鐒跺悗紱佹鍏跺畠鎵鏈変漢鐨処P 鐐瑰嚮娣誨姞 閫変腑 鍚嶅瓧涓篬deny]鐨処P絳涢夊櫒, 鍐嶉夋嫨 [deny]鐨勭瓫閫夊櫒鎿嶄綔
鍏蜂綋鐨勫浘鍙互鍙傝?a title="鐧懼害鏂囧簱">鐧懼害鏂囧簱銆?br />浜屻?寤虹珛VPN鏈嶅姟鍣?Window2008)
瀹夎濂藉悗錛屽彸閿繘琛岃嚜瀹氫箟閰嶇疆錛岄夋嫨VPN NAT LAN璺敱鍚姩鏈嶅姟.
瀹屾垚鍚庝慨鏀瑰叾灞炴?->瀹夊叏-->楠岃瘉鏂瑰紡浠呯暀涓婱S-CHAP V2, 鍙栨秷IPV6鐩稿叧璁劇疆錛屽茍涓旀寚瀹氬ソIP鍦板潃姹狅紝192.168.99.100-192.168.99.110.
鍦ㄨ礬鐢卞拰榪滅▼璁塊棶-->IPv4-->NAT鍙抽敭-->鏂板鎺ュ彛-->閫夋嫨澶栫綉緗戝崱-->鍏敤鎺ュ彛榪炴帴鍒癐nternet(涓嶉夋嫨 鍦ㄦ鎺ュ彛涓婂惎鐢∟AT,鍥犱負鎴戜滑榪欓噷涓嶆墦綆椾嬌鐢╒PN鏈嶅姟鍣ㄧ殑緗戠粶璧勬簮涓婄綉,鑰屼嬌鐢ㄥ鎴鋒満鑷繁鐨勭綉緇滆祫婧?瑙佺涓夋絎?鏉?
鍦ㄨ礬鐢卞拰榪滅▼璁塊棶-->IPv4-->NAT鍙抽敭-->鏂板鎺ュ彛-->閫夋嫨鍐呯綉緗戝崱-->鍏敤鎺ュ彛榪炴帴鍒癐nternet,騫朵笖鍕句笂 鍦ㄦ鎺ュ彛涓婂惎鐢∟AT,浠ヤ究瀹㈡埛鏈哄彲浠ラ氳繃VPN鏈嶅姟鍣ㄧ殑鍐呯綉璁塊棶鍏跺畠鏈嶅姟鍣?(榪欎釜緗戝崱鐨勮緗槸璇曢獙鍑烘潵鐨?鍐呯綉鐨勪笉閫?鍦ㄦ鎺ュ彛涓婂惎鐢∟AT,鍒欎笉鑳借闂叾瀹冩湇鍔″櫒,杞彂鍘熺悊涓嶅お鏄庣櫧)
鍏蜂綋鐨勫浘鍙互鍙傝?a title="ske_tech鐨勬枃绔?>ske_tech鐨勬枃绔?/a>
涓夈?瀹㈡埛绔緩绔媀PN榪炴帴
鍥涖?榪炴帴VPN嫻嬭瘯
璁劇疆濂戒互鍚? 鎵撳紑榪滅▼妗岄潰, 涓嶈繛鎺PN, 鐩存帴浣跨敤鏈嶅姟鍣ㄥ緗慖P榪炴帴涓嶄笂, 鐩存帴榪炴湇鍔″櫒鍐呯綉IP涔熻繛涓嶄笂.
榪炴帴VPN, 榪炴帴榪滅▼鏈嶅姟鍣ㄧ殑鍐呯綉IP 192.168.1.3,鍙互榪炴帴涓? 瀹炵幇浜嗘垜浠牴鎹甐PN IP闄愬埗鏈嶅姟鍣ㄨ繙紼嬫闈㈢殑鐩爣.
浜斻?瀛樺湪闂
鐢變簬鏃墮棿姣旇緝浠撲績, 涓嶈凍涔嬪榪樻湜鎸囨.濡傞渶杞澆璇鋒敞鏄庡嚭澶?http://www.shnenglu.com/NWAO/admin/EditPosts.aspx?postid=208350
]]>
鏄ㄥぉ鎼炵殑鏄?windows榪?nbsp; linux鏈嶅姟鍣紝浠婂ぉ棰嗗瑕佹眰鍙嶈繃鏉ヨ繛錛屼簬鏄姌鑵句簡涓澶╁張銆?br />1. 寤虹珛windows vpn server
鍦╳indows涓婃柊寤哄ソ VPN鏈嶅姟 鍥句笉寮勪簡
mppe required,stateless
寤虹珛榪炴帴 pptpsetup --create myvvpn --username vpntest --password 123456 --encrypt --start
(涓嶈緗ソ韜喚璁よ瘉鏂規硶榪欓噷浼氭姤閿欍?
鐜板湪ping 192.168.1.x鍙互閫氫簡錛屼絾鎯硃ing 榪滅▼鍐呯綉10.10.10.X榪樹笉琛屻傞渶瑕佸姞涓浜況oute
route add -net 10.10.10.0/24 netmask 255.255.255.0 dev ppp0
鐜板湪灝卞彲浠ヤ簡
]]>
緗戠粶 鍙岀綉鍗?23.23.23.23 (澶? 10.16.16.16(鍐? 鍦板潃閮芥槸紺轟緥鍦板潃銆?br />緇忚繃涓涓嬪崍baidu緇堜簬鎼炴垚浜嗐傜幇鍦ㄨ褰曞涓?br /> 1.棣栧厛媯鏌PPE妯″潡鍔犺澆涓庡惁
modprobe ppp-compress-18 && echo MPPE IS OK
濡傛灉鍐呮牳涓婃湁璇ユā鍧楀氨浼氳緭鍑篗PPE is ok
2.瀹夎杞歡
瀹夎ppp
yum install ppp
yum install iptables
/etc/init.d/iptables start chkconfig --level 35 iptables on
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm
4. 鏇存敼PPP PPTP鐨勯厤緗枃浠?br />ppp
vi /etc/ppp/options.pptpd
淇敼
ms-dns 8.8.8.8
ms-dns 8.8.4.4
debug
pptpd
vi /etc/pptpd.conf
淇敼
localip 123.23.23.23
remoteip 192.168.0.201-210
澧炲姞VPN甯愬彿
vi /etc/ppp/chap-secrets
澧炲姞涓琛?br />
vpntest pptpd 123456 192.168.0.209
5. 鎵撳紑鍐呮牳鐨勮漿鍙戝姛鑳?br />
vi /etc/sysctl.conf
淇敼
net.ipv4.ip_forward=1
鐒跺悗
sysctl -p
6鎵撳紑pptpd鏈嶅姟
/etc/init.d/pptpd start chkconfig --level 35 pptpd on
7閰嶇疆iptables
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -i eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/etc/init.d/iptables save
service iptables restart
8閲嶅惎涓媝ptpd
service pptpd restart
9 浠巜in7寤虹珛vpn榪炴帴嫻嬭瘯
鍒涘緩涓涓猇PN榪炴帴 濉叆璁劇疆鐨処P 123.23.23.23 鐢ㄦ埛鍚?vpntest 瀵嗙爜123456 榪炴帴 鎴愬姛鍚庢渶濂芥妸VPN榪炴帴 涓睘鎬榪炴帴涓嬬殑ipv6鍘繪帀銆?br />
鍙傝?nbsp; 榪欑瘒鏂囩珷
]]>
...etc),VALUES涓殑絎竴涓暟鍗充負ID.
緇忚繃涓鐣悳绱?鎺㈢儲錛屽緱鍒頒互涓嬪懡浠よВ鍐抽棶棰?
絎竴涓?br /> %s/\(VALUES ('\)\d\+\('\)/\=submatch(1).(line("."))+50).submatch(2)/
瑙i噴錛?s %浠h〃鏇挎崲鍛戒護s鍦ㄥ叏鏂囨墽琛? 鏇挎崲鍛戒護鏍煎紡鏄?s/鍖歸厤涓?鏇挎崲涓?
/\(VALUES ('\)\d\+\('\)/ 鏄尮閰嶄覆錛屽尮閰嶆瘡涓琛屼腑鐨刅ALUES ('鏁板瓧' 榪欎竴孌?br /> /\=submatch(1).(line("."))+50).submatch(2)/ 鏇挎崲涓?
\=鏄嬌鐢ㄥ悗闈㈢殑鍑芥暟鐨勬剰鎬?br /> submatch 鍖歸厤鍓嶉潰鐢?\( \)鍖呭惈鐨勯儴鍒嗗\(VALUES ('\)灝哣ALUES ('浣滀負submatch(1)鐨勫尮閰嶅璞°俿ubmatch(2)鍒欏尮閰?鏁板瓧鍚庨潰鐨?
澶氫釜鍑芥暟寮忎嬌鐢?灝嗙粨鏋滆繛鎺ヨ搗鏉?br />
絎簩涓?榪欎釜鏄悗鏉ユ墠鐪嬪埌浜嗭紝榪欎釜鏇寸畝媧佷簺銆?br /> %s/VALUES ('\zs\d\+\ze/\=line(".")+50/
%s 鍚屼笂
/VALUES ('\zs\d\+\ze/ 鍖歸厤涓詫紝\zs浠h〃鐨勬槸鏇挎崲鎿嶄綔寮濮嬪錛孿ze浠h〃鐨勬槸鏇挎崲鎿嶄綔緇撴潫澶勶紝榪欐牱鍚庨潰鐨勬浛鎹篃鍙拡瀵硅繖涓孌佃繘琛屾浛鎹€?br /> /\=line(".")+50/ 鏇挎崲涓詫紝鐢變簬鍓嶉潰鎸囧畾浜嗘浛鎹㈡錛岃繖閲岀殑鏇挎崲鍐呭鐩存帴鎸囧畾鍚堥傜殑鏁板煎嵆鍙?br />
PS: 涓婅堪s鍛戒護鐨勫尮閰嶄覆閮戒嬌鐢ㄥ埌浜嗘鍒欒〃杈懼紡錛岃繖閲屼笉浣滀粙緇嶃?br />鏈漢浣跨敤鐨勭幆澧冩槸win7 x64 + GVim7.4銆?br />瀵筕im鏈漢涔熸槸鍒濆涔嶇粌錛岃艾璇箣澶勬湜澶у鎸囨銆?/div>
]]>
3
3.1 Data Member緇戝畾
緙栬瘧鍣ㄤ互瀵圭被澹版槑涓嚱鏁板唴鍑虹幇鐨勫彉閲忕殑鍐寵鍦ㄧ被澹版槑緇撴潫鍚庤繘琛岋紝鑰岀被鍐呭嚱鏁板弬鏁板垪琛ㄥ垯鍦ㄧ涓嬈″嚭鐜版椂琚喅璁紝鎵浠ヨ鎶妌ested type澹版槑鏀懼湪綾誨0鏄庤搗濮嬪銆?br /> 3.2 Data Member甯冨眬
C++瑙勮寖瑕佹眰鍚刟ccess section鍐呭彉閲忓湪鍐呭瓨涓笌澹版槑欏哄簭涓鑷達紝鑰屽悇access section欏哄簭鏈檺鍒訛紝褰撳墠閮芥槸灝哸ccess sections榪炲湪涓璧?br /> 3.3 Data Member瀛樺彇
褰撲嬌鐢ㄦ寚閽堝瓨鍙栨垚鍛樻椂錛岃嫢鍦ㄥ叾緇ф壙緇撴瀯涓湁涓涓獀irtual base class錛屼笖瀛樺彇鐨勬槸璇irtual base class鏃訛紝浼氬拰浣跨敤綾誨璞$洿鎺ュ瓨鍙栨湁閲嶅ぇ宸埆銆傜敱浜庢棤娉曞湪緙栬瘧鏃剁‘瀹氭寚閽堝叿浣撴寚鍚戜綍縐嶇被鍨嬶紝鏃犳硶紜畾鍙橀噺offset錛岄渶瑕佸湪鎵ц鏈熷厛浠庡璞′腑鑾峰彇virtual base class鐨勫湴鍧錛岀劧鍚庢壘鍒版垚鍛樸?br /> 3.4 緇ф壙
褰撹櫄緇ф壙鍑虹幇鏃訛紝Class灝嗚鍒嗗壊涓?涓嶅彉灞閮?鍜?鍏變韓灞閮?涓ら儴鍒嗐備竴鑸厛瀹夋帓涓嶅彉灞閮紝鐒跺悗鍐嶅畨鎺掑叡浜眬閮ㄣ?br /> 涓昏鏈変笁縐嶅疄鐜扮瓥鐣ワ細
cfront鍘熷妯″瀷 浜庢瘡涓猟erived class object鍐呭畨鎻掓寚閽堬紝鎸囧悜virtual base class. 浣嗘湁涓や釜緙虹偣 a铏氬熀綾昏秺澶氭彃鍏ユ寚閽堣秺澶氾紝絀洪棿璐熻澆鍙樺ぇ b緇ф壙涓查摼澧為暱鏃墮棿鎺ュ瓨鍙栨鏁頒細涓嶆柇澧炲姞
鐢遍壌浜庢: 1). 涓浜涚紪璇戝櫒鎷瘋礉nested virtual base class鎸囬拡錛屼互絀洪棿鎹㈡椂闂?br /> 2). MS浣滄硶錛屽姞鍏irtual base class table錛屾瘡涓璞″唴鎻掑叆vbptr鎸囬拡
3). 鍦╲ftbl涓斁緗?virtual base class 鐨刼ffset
3.5 瀵硅薄鎴愬憳鐨勬晥鐜?br /> 3.6 鎸囧悜鏁版嵁鎴愬憳鎸囬拡
int MyClass::*p = &MyClass::m_x; p榪斿洖鍊煎湪涓嶅悓緙栬瘧鍣ㄦ湁涓嶅悓鎯呭喌錛屼竴鑸負1, 5, 9..etc 1, 5, 9 鐨勬儏鍐靛彲浠ュ尯鍒嗗嚭“娌℃湁鎸囧悜浠諱綍member鎴愬憳鐨勬寚閽?0)”鍜?#8220;鎸囧悜絎竴涓猰ember鎴愬憳鐨勬寚閽?1)”,瀹為檯浣跨敤鎸囬拡鏃跺簲灝唒-1 ;VC涓負0, 4, 8..etc 瀵逛簬"娌℃湁鎸囧悜浠諱綍member鎴愬憳鐨勬寚閽?VC鎶婂畠璧嬪間負0xffffffff浠ユ鍖哄垎鍓嶈堪鎯呭喌.
4
4.1 Member鐨勫悇縐嶈皟鐢ㄦ柟寮?br /> 1) nonstatic member functions
涓?nonmember function鏈夌浉鍚屾晥鐜?浣跨敤name mangling絳夋墜孌佃漿鎹負鎺ュ彈this鎸囬拡涓哄弬鏁扮殑鍑芥暟
2) virtual member functions
ptr->Myfun(); 浼氳漿鎹負 (*ptr->vptr[x])(ptr);
3) static member function
娌℃湁this鎸囬拡涓巒onmember function鏈夌浉鍚?br /> 4.2 virtual member functions
class object涓婇渶瑕佹湁class綾誨瀷淇℃伅(瀛楃涓叉垨鏁板瓧)鍜寁ptr浠ュ強棰濆鐨勮櫄鍑芥暟琛?ptr->Myfun(); 浼氳漿鎹負 (*ptr->vptr[x])(ptr);
澶氶噸緇ф壙鏃剁涓涓猙ase class鐩存帴鍙互浣跨敤鎸囧悜瀵硅薄寮濮嬪鐨則his錛屽叾絎簩涓強鍚庣戶base class闇瑕佽皟鏁磘his鎸囬拡鏉ユ敮鎸佽櫄鍑芥暟錛屾湁涓夌鎯呭喌:a)閫氳繃pBase2 璋冪敤瀛愮被鍑芥暟delete pBase2;(瑕佽皟鐢―erived::~Derived) b)閫氳繃pDerived璋冪敤Base2鐨勮櫄鍑芥暟 pDerived->Base2VirtualFunc(); c)铏氬嚱鏁拌繑鍥炲兼湁鍙樺寲Derived* Derived::clone(); pBase1 = new Derived; pBase2 = pBase1->clone(); 璋冩暣this鎸囬拡鐨勬湁縐峵runk鎶鏈紝緙栬瘧鍣ㄥ唴閮ㄥ悇鑷嬌鐢ㄤ簡涓嶅悓鏂規硶鏉ヨВ鍐寵皟鏁磘his鎸囬拡鐨勯棶棰?br /> 铏氱戶鎵匡紝灝介噺涓嶈鍦ㄨ櫄鍩虹被涓0鏄巒onstatic data members銆?br /> 4.3 鍑芥暟鏁堣兘
4.4 鎸囧悜鎴愬憳鍑芥暟鐨勬寚閽?br /> 鍙杗onstatic nonvirtual鎴愬憳鍑芥暟涔嬪湴鍧錛屽緱鍒版槸鍐呭瓨鍦板潃,綾誨瀷double (MyClass::*pmf)()錛屽彇static鎴愬憳鍑芥暟涔嬪湴鍧寰楀埌鍐呭瓨鍦板潃錛岀被鍨媎ouble (*pmf)();鍙杤irtual鎴愬憳鍑芥暟鍦板潃寰楀埌vtbl涓殑欏哄簭鍙楓?br /> 浣跨敤鎸囧悜鎴愬憳鍑芥暟鐨勬寚閽堟椂鍦ㄦ病鏈塿irtual鍑芥暟錛屽閲嶇戶鎵匡紝铏氬熀綾葷殑鎯呭喌涓嬪拰鏅氬嚱鏁版寚閽堟湁鍚屾牱鐨勬晥鐜囥?br /> pmf鍙兘鏄唴瀛樺湴鍧涔熷彲鑳芥槸vtbl欏哄簭鍙鳳紝涓烘寮濮媍front浣跨敤浜嗗涓嬫墜孌墊敮鎸乿irtual鍑芥暟
( (int)pmf & ~127) ? (*pmf)(ptr) : (* ptr->vtble[(int)pmf]) (ptr);//鏈澶?28涓櫄鍑芥暟
澶氶噸緇ф壙涓嬩嬌鐢ㄤ簡涓涓粨鏋勪綋鏉ュ疄鐜?nbsp;
struct __mptr {
int delta; //this鎸囬拡鐨刼ffset鍊鹼紝(浣跨敤澶氶噸緇ф壙涓嬬涓涓熀綾繪寚閽堟椂鑻?vptr鍦ㄥ璞″紑濮嬫椂鍒欎笉闇瑕佹瀛楁
int index;//vtbl index;
union{
ptrtofunc faddr;//鍑芥暟鍦板潃
int v_offset;//铏氬熀綾繪垨澶氶噸緇ф壙涓殑絎簩鍩虹被鐨剉ptr浣嶇疆
};
};
鎸囧悜鎴愬憳鍑芥暟鎸囬拡鐨勬晥鑳?br /> 4.5 inline functions
緙栬瘧鍣ㄤ細鏍規嵁鑷繁鐨勬満鍒舵潵鍐沖畾瀹氬嚱鏁版槸鍚﹀彲浠ユ垚涓篿nline functions銆?br /> inline鍑芥暟浼氬湪琚皟鐢ㄧ殑閭d竴鐐逛笂鎵╁睍錛屽畠浼氭秹鍙婂埌鍙傛暟姹傚煎拰涓存椂瀵硅薄鐨勭鐞嗐?br /> 1)褰㈠弬 鑻ユ槸甯擱噺琛ㄨ揪寮忓垯鐩存帴緇戝畾鍒板弬鏁頒笂錛岃嫢鏄湁鍓綔鐢ㄧ殑琛ㄨ揪寮忥紝鍒欓渶瑕佸紩鍏ヤ復鏃跺璞′互閬垮厤閲嶅姹傚箋?br /> inline min(int i , int j){return i<j?i:j;}
int x = min(foo(), foo2());
--> x= ( t1= foo(),t2=foo2(),t1 <t2?t1:t2;);
2)灞閮ㄥ彉閲?br /> 鑻nline涓嫢鏈夊眬閮ㄥ彉閲忥紝澶氭鎵╁睍鍚庤緇存姢鐨勫眬閮ㄥ彉閲忎細寰堝銆?br /> 浣跨敤inline鍑芥暟鏃訛紝鑻ヨ皟鐢ㄦ鏁板お澶氾紝浼氫嬌紼嬪簭浣撶Н鍙樺ぇ錛屼絾瀹冨彲浠ユ湁鏁堝瓨鍙杗onpublic鏁版嵁錛岀浉姣斿畯瀵圭被灝佽鎬ф彁渚涗簡杈冨ソ鏀寔銆?img src ="http://www.shnenglu.com/NWAO/aggbug/203596.html" width = "1" height = "1" />
]]>
瑙e喅鍔炴硶: 璇佹槑涓鴻鎶ュ悗灝辯畝鍗曚簡錛屽彲浠ョ洿鎺ユ妸log4cxx緙栬瘧涓簉elease浣跨敤鍗沖彲銆?br /> 鑻ヨ繕鏄寰椾笉鐖斤紝闈炶鐢╠ebug鐨刲og4cxx錛屽湪stdafx.h涓姞鍏?pragma comment(lib, "log4cxx.lib") 鍦ㄥ伐紼嬪睘鎬т腑鐨刲ink->Input->Additional Dependencies涓垹鎺塴og4cxx.lib欏癸紝 鍒欏彲浣縨fc90鍔犺澆閲婃斁欏哄簭姝e父錛屼粠鑰孷C涓嶅啀璇姤鍐呭瓨娉勯湶銆?br />
PS:鑷繁涔熷啓寮勪簡涓皬紼嬪簭婕旂ず姝ょmfc浣跨敤win32 dll鐨勬儏鍐碉紝鍙戠幇涓涓湁鎰忔濈殑浜嬫儏錛屽畾涔夌殑string鍐呭瓧絎︽暟瑕佷笉灝忎簬16鎵嶄細鏄劇ず璇姤鎯呭喌錛屽師鍥犱笉鏄庯紝鏈涢珮鎵嬫寚鐐廣?div>婕旂ず紼嬪簭鍦板潃http://download.csdn.net/detail/nwao7890/6477591
]]>
鑰屽鏋滄槸short ary[10]鐨勬儏鍐靛憿錛焌ry[8]鐨勫湴鍧鎬庝箞綆楋紵 絳旀渚濈劧鏄?(ary+8)鐞嗙敱鍚屼笂銆?br />
PS:鎸囬拡鍔?鎵縐誨姩鐨勮窛紱諱細鏍規嵁鎸囬拡鐨勭被鍨嬫潵鍐沖畾銆?img src ="http://www.shnenglu.com/NWAO/aggbug/198717.html" width = "1" height = "1" />
]]>
浠ュ墠閮芥槸鐩存帴鍐欑綉涓婄殑鏍囧噯絳旀錛屾槰澶╁拷鐒舵兂璧鋒潵榪欎釜鍑芥暟鍗村張蹇樹簡緗戜笂鎬庝箞鍐欑殑錛屽彧濂借嚜宸卞姩鎵嬪啓浜嗗啓錛岃繕鐪熷彂鐜扮偣闂銆?br />
浠g爜鍙婇棶棰樺涓?br />
char* strcpy(char* dst, const char* src)
{
if( !dst || !src)
return null;
char* p = dst;
while( *p++ = *src++) // 闂灝卞湪榪欏効錛?/span>
;
return dst;
}
緗戜笂涓鑸兘鏄啓鐨?while((*p++ = *src++) != '\0') 錛屼互鍓嶆妱涔犳儻浜嗭紝涔熸病娉ㄦ剰鍙繕鍙互鍐嶇畝鍖栦負涓婇潰鐨勫啓娉曘?span style="color: red;">鐩存帴鍒╃敤絳夊彿琛ㄨ揪寮忕殑榪斿洖鍊兼潵榪涜鏉′歡鍒ゆ柇(鍒板瓧絎︿覆鏈熬鏃?\0'琚鍒朵箣鍚庣瓑鍙瘋〃杈懼紡鐨勮繑鍥炲間篃涓篭0鍗?涔熷氨鏄痜alse鏉ヨ煩鍑哄驚鐜?銆?/span>
]]>
鍚庢潵鍦ㄥ伐浣滀腑闇瑕佺湅涓浜泈eb鏂歸潰鐨勪唬鐮侊紝鍑嗗鏇存柊涓媀S鎶婂師鏉ユ病瑁呯殑C#鍜學EB浜涢兘瑁呬笂銆?br />鎵懼嚭瀹夎鍏夌洏鐨勯暅鍍忔潵錛岃皝鐭?#8220;A problem has been encountered while loading the setup components. Canceling setup”鎬繪槸鍐掑嚭鏉ワ紝鏃犳硶鏇存柊浜嗚繕銆傛棤濂堜笂緗戞壘鍔炴硶錛屾湁璇寸敤浠涔坈lean up宸ュ叿鍖呯殑錛屾湁璇村嵏杞借ˉ涓佺殑銆?br />
鏈緇堟壘鍒?/span>瀹岀編瑙e喅鍔炴硶“鎺у埗闈㈡澘-->vs2008-->鍗歌澆/鏇存柊"灝卞ソ浜?/span>錛岄夋嫨濂介渶瑕佺殑緇勪歡錛岀戶緇綘鐨勫畨瑁呭惂
]]>
浠ュ墠涓嶆眰鐢氳В錛屾湭鍒嗘竻妤氫簩鑰呫傜姜榪囥?img src ="http://www.shnenglu.com/NWAO/aggbug/187964.html" width = "1" height = "1" />
]]>
涓婄綉鏌ユ壘鍒板緢澶氬姙娉曪紝浣嗙粡璇曢獙鍙湁涓縐嶈В鍐充簡闂 ”鍒犻櫎鎵鏈夋柇鐐?/span>“銆?涔嬪悗鏂偣姝e父浜嗭紝鍚姩涔熶笉鐢ㄧ瓑浜嗐?br />
鍒嗘瀽錛屽彲鑳芥槸VS鐨勬柇鐐硅褰曚笌鏂囦歡鏈韓鏈夊叧錛屾瘡嬈℃墦寮VS浼氳嚜鍔ㄤ粠Team Foundation Server涓婃洿鏂頒唬鐮侊紝騫朵笖閲嶆柊緙栬瘧涔嬪悗錛岄兘鍙兘瀵艱嚧鏂偣涓庝唬鐮佽VS璁や負涓嶅尮閰嶈屽け鏁堛傝岃皟璇曞惎鍔ㄦ椂浼拌VS浼氬幓鍒瀵繪壘瀹冭涓哄鐨勪唬鐮佹枃浠舵垨鏄疨DB鏂囦歡銆傛諱箣搴旇鏄疺S鐨凚UG銆?img src ="http://www.shnenglu.com/NWAO/aggbug/168382.html" width = "1" height = "1" />
]]>
2 1>Searching libraries
3 1> Searching C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\MSVCRTD.lib:
4 1> Searching C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\lib\mfcs90ud.lib:
5 1>mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
鍐嶇法璀嵆OK
鍙冭僪ttp://support.microsoft.com/kb/148652
]]>
瑙e喅
鏁欒
鐐烘鐗規剰鎵懼埌浜嗗叾涓畯瀹氱京鐨勫惈緹╋紝鐭ラ亾浜嗛欎簺錛屾帶浠禝D灝卞彲浠ラ毃渚挎敼鍟︺?br />
_APS_NEXT_RESOURCE_VALUE is the next symbol value that will be used for a dialog resource, menu resource, and so on. The valid range for resource symbol values is 1 to 0x6FFF.
涓嬩竴鍊嬪皪瑭辨鎴栬彍鍠瓑璩囨簮鐨処D,1----0x6FFF
]]>
HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Recent File List
VS8.0
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\ProjectMRUList
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FileMRUList
娓呯┖浠ヤ笂鍐呭錛屽啀鎵撳紑VS鍗沖彲
]]>