锘??xml version="1.0" encoding="utf-8" standalone="yes"?> There are various ways to get the passwords stored in KeePass into other windows. The first, and most simple method is copying them to the clipboard. For this, just double-click onto the specific field in the main password list. Example: if you want to copy the password of entry X, point onto the password field of the entry in the main view and double-click. The password is copied to the clipboard. If you enable the auto-clearing option, KeePass will clear the clipboard automatically after some seconds. This prevents you from forgetting to clear the clipboard yourself, leaving sensitive data in the clipboard. The second method is drag-n-drop. As in method 1, point onto the field you want to use, click the left mouse button and hold it. Drag the data into other windows. The third, and the most powerful method is auto-type. KeePass features a very mighty auto-type feature, which types user names, passwords, etc. into other windows for you. The default auto-typing sequence is: {USERNAME}{TAB}{PASSWORD}{TAB}{ENTER}. But this sequence is customizable, per entry (read the CHM documentation file that comes with KeePass for more about this). This makes the auto-type feature applicable to all windows and webforms you'll ever see. There are two submethods to perform an auto-type:
{
int co;
};
class Base1: virtual public CommonBase
{
public:
virtual void print1() {}
virtual void print2() {}
private:
int b1;
};
class Base2: virtual public CommonBase
{
public:
virtual void dump1() {}
virtual void dump2() {}
private:
int b2;
};
class Derived: public Base1, public Base2
{
public:
void print2() {}
void dump2() {}
private:
int d;
};
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
F5緙栬瘧涔嬶紝浣犱細鎯婂鍦板彂鐜幫紝Output閲岄潰鏈夊涓嬪瓧鏍鳳細
2 +---
3 | +--- (base class Base1)
4 0 | | {vfptr}
5 4 | | {vbptr}
6 8 | | b1
7 | +---
8 | +--- (base class Base2)
9 12 | | {vfptr}
10 16 | | {vbptr}
11 20 | | b2
12 | +---
13 24 | d
14 +---
15 +--- (virtual base CommonBase)
16 28 | co
17 +---
18
19 Derived::$vftable@Base1@:
20 0 | &Base1::print1
21 1 | &Derived::print2
22
23 Derived::$vftable@Base2@:
24 0 | &Base2::dump1
25 1 | &Derived::dump2
26
27 Derived::$vbtable@Base1@:
28 0 | -4
29 1 | 24 (Derivedd(Base1+4)CommonBase)
30
31 Derived::$vbtable@Base2@:
32 0 | -4
33 1 | 12 (Derivedd(Base2+4)CommonBase)
34
35 Derived::print2 this adjustor: 0
36 Derived::dump2 this adjustor: 12
鐪嬪埌浜嗗悧? VC8灞呯劧杈撳嚭浜咲erived瀵硅薄鐨勫畬鏁村竷灞! 鎴戜滑緇堜簬鍙互涓嶅繀涓ょ溂涓鎶歸粦鑸殑鍘籶eek/poke浜?...絎?琛岃〃鏄庯紝Derived瀵硅薄鎬誨崰鐢ㄤ簡32瀛楄妭錛涘叾鐢變笁閮ㄥ垎緇勬垚錛屽垎鍒槸琛?-琛?銆佽 8-琛?2銆佽13銆佽28錛涘叾涓墠浜岃呭垎鍒槸鍩虹被Base1銆丅ase2鐨勫竷灞錛屾渶鍚庣殑琛?8涓鴻櫄鎷熷熀綾籆ommon鐨勫竷灞銆?br />
浠ュ熀綾?Base1閮ㄥ垎涓轟緥錛屽彲鍙戠幇鍏剁敱涓涓櫄鍑芥暟琛ㄦ寚閽坴ftable鍜岃櫄鍩鴻〃鎸囬拡vbtable鏋勬垚錛屽厛鐪婤ase1閮ㄥ垎鐨剉ftable鎵鎸囧悜鐨勮櫄琛? vftable@Base1(琛?9)錛屼笉闅懼彂鐜幫紝鍏朵腑鐨勮〃欏?宸茬粡琚獶erived::print2緇檕verride浜嗭紱鍐嶆潵鐪婤ase2閮ㄥ垎鐨?vftable鎵鎸囧悜鐨勮櫄琛?vftable@Base2(琛?3)錛屽彲鍙戠幇錛屽悓鏍風殑錛孊ase2::dump2琚獶erived::dump2緇?override浜嗐傝繖涓嶆槑鎽嗙潃灝辨槸铏氬嚱鏁版満鍒跺槢錛宧eh~
鍊煎緱娉ㄦ剰鐨勬槸錛岃繖涓緥瀛愬悓鏃惰鏄庯紝澶氱戶鎵垮満鍚堜笅錛屽叾瀹炲湪鍗曚竴瀵硅薄涓槸瀛樺湪澶氫釜 this鎸囬拡鐨?...琛?5-36緇欏嚭浜嗗浣曞皢Derived鐨則his鎸囬拡鏍℃涓哄叾鍩虹被瀛愬璞his鎸囬拡鐨勫亸縐婚噺錛屼篃灝辨槸璇達紝鏍規(guī)嵁琛?6錛屽亣璁炬湁涓?Derived d錛岄偅涔坉.dump1()瀹為檯涓婂簲璇ョ悊瑙f垚閫氳繃铏氳〃$vftable@Base2瀵?(Base2*)(((char*)&d)+12))- >dump1()鐨勮皟鐢?...鍗充紶閫掔粰鎵鏈塀ase2鎴愬憳鍑芥暟鐨則his鎸囬拡搴旇鏄?Base2*)((char*)(&d)+12)錛岃繖閲屽彲鑳芥垜鍐欏緱鎭愭栦簡鐐癸紝鎰忔濆埌浜嗗氨鎴?...榪欎笉錛屾櫘閫氱戶鎵褲佸緇ф壙銆佸璞licing鐨勮涔夐兘鍦ㄨ繖涓竷灞閲岄潰浜嗭紝鐪嬩粩緇嗕簡鍝垀
OK錛屽緇ф壙鐪嬪畬浜嗭紝緇х畫鐪嬭櫄鎷熷熀綾繪槸濡備綍甯冨眬鐨勩傝櫄鍩篊ommon鍦―erived鐨勫竷灞涓紝浣嶄簬Derived鏈韓鏁版嵁鎴愬憳涔嬪悗鐨勪綅緗侭ase1銆?Base2涓潎淇濆瓨浜嗕竴涓獀btable鎸囬拡錛屽叾鍒嗗埆鎸囧悜鍚勮嚜鎵浣跨敤鐨勮櫄鍩鴻〃$vbtable@Base1鍜?vbtable@Base2錛屼負浠涔堣鎸囧悜涓涓櫄鍩鴻〃? 寰堢畝鍗曪紝鍥犱負Base1銆丅ase2鏈夊彲鑳戒細鍚屾椂緇ф壙澶氫釜涓嶅悓鐨勮櫄鎷熷熀綾?....榪欏厖鍒嗕綋鐜頒簡C++瀵硅薄甯冨眬鐨勫鏉傛?...鍦ㄦ瘡涓櫄鍩鴻〃涓紝淇濆瓨浜嗘墍緇ф壙鐨勮櫄鎷熷熀綾婚儴鍒嗙浉瀵逛簬瀛愮被閮ㄥ垎vbtable鎸囬拡鐨勫亸縐誨鹼紝浠ase2涓轟緥錛屾垜浠煡閬揃ase2鐨剉btable鍦―erived涓殑鍋忕Щ鍊間負16 (琛?0)錛屽垯鏍規(guī)嵁$vbtable@Base2錛岃櫄鍩篊ommon閮ㄥ垎璺濈Base2 vbtable鎸囬拡鐨勫亸縐誨間負12,鍒欐湁铏氬熀Common鍦―erived涓殑鎬誨亸縐誨間負16+12銆備笌鏅氬緇ф壙鍚岀悊錛屾垜浠湪璋冪敤闈炶櫄鎷熺殑铏氬熀鎴愬憳鍑芥暟鏃訛紝蹇呴』灝咲erived鐨則his鎸囬拡璋冩暣涓烘寚鍚戣櫄鍩洪儴鍒嗙殑this鎸囬拡錛屽彧鏈夎繖鏍鋒墠鑳芥垚鍔熷湴璁塊棶铏氬熀鑷韓鐨勬暟鎹垚鍛樺拰铏氬熀鐨勮櫄鎷熷嚱鏁?閫氳繃铏氬熀鑷繁鐨?vftable錛屼負綆鍗曡搗瑙侊紝涓婁緥涓垜灝辨病寮勯偅涔堝鏉備簡錛屽ぇ瀹跺彲浠ヨ嚜宸辯帺鐜╋紝鏄庣櫧濡備綍涓句竴鍙嶄笁鍗沖彲)
]]>
]]>
#include <boost/bind.hpp>
#include <iostream>
#include <vector>
#include <algorithm>
template<class T>
inline T & ToRef( T *pT)
{
return *pT;
}
#define TODEF(x) bind( ToRef<x>, _1)
template<class T>
inline void DeletePointer( T *pT)
{
delete pT;
}
#define ALL(v) (v).begin(), (v).end()
struct X
{
public:
int m_t;
X():m_t(11)
{
}
bool f(int a)
{
std::cout << m_t << std::endl;
return true;
}
};
int main()
{
using namespace boost;
using namespace std;
vector<X *> v;
for( int i=0; i<10; ++i)
v.push_back( new X);
for_each( ALL(v), bind(&X::f, TODEF(X), 4 ) );
for_each( ALL(v), bind( DeletePointer<X>, _1) );
return 0;
}
涓婂笣鎶婁袱緹ょ緤鏀懼湪鑽夊師涓婏紝涓緹ゅ湪鍗楋紝涓緹ゅ湪鍖椼?/span>
涓婂笣榪樼粰緹婄兢鎵句簡涓ょ澶╂晫錛屼竴縐嶆槸鐙瓙錛屼竴縐嶆槸鐙箋?/span>
涓婂笣瀵圭緤緹よ:“濡傛灉浣犱滑瑕佺嫾錛屽氨緇欎竴鍙紝浠誨畠闅忔剰鍜綘浠?/span>
濡傛灉浣犱滑瑕佺嫯瀛愶紝灝辯粰涓ゅご錛屼綘浠彲浠ュ湪涓ゅご鐙瓙涓換閫変竴澶達紝榪樺彲浠ラ殢鏃舵洿鎹€?#8221;
榪欓亾棰樼殑闂灝辨槸錛氬鏋滀綘涔熷湪緹婄兢涓紝浣犳槸閫夌嫾榪樻槸閫夌嫯瀛愶紵
寰堝鏄撳仛鍑洪夋嫨鍚э紵
濂藉惂錛岃浣忎綘鐨勯夋嫨錛屾帴钁楀線涓嬬湅銆?/span>
鍗楄竟閭g兢緹婃兂,鐙瓙姣旂嫾鍑剁寷寰楀,榪樻槸瑕佺嫾鍚с備簬鏄?/span>,瀹冧滑灝辮浜嗕竴鍙嫾銆?/span>
鍖楄竟閭g兢緹婃兂錛岀嫯瀛愯櫧鐒舵瘮鐙煎嚩鐚涘緱澶氾紝浣嗘垜浠湁閫夋嫨鏉冿紝榪樻槸瑕佺嫯瀛愬惂銆備簬鏄紝瀹冧滑灝辮浜嗕袱澶寸嫯瀛愩?/span>
閭e彧鐙艱繘浜嗗崡杈圭殑緹婄兢鍚庯紝灝卞紑濮嬪悆緹娿?/span>
鐙艱韓浣撳皬錛岄閲忎篃灝忥紝涓鍙緤澶熷畠鍚冨嚑澶╀簡銆?/span>
榪欐牱緹婄兢鍑犲ぉ鎵嶈榪芥潃涓嬈°?/span>
鍖楄竟閭g兢緹婃寫閫変簡涓澶寸嫯瀛愶紝鍙︿竴澶村垯鐣欏湪涓婂笣閭i噷銆?/span>
榪欏ご鐙瓙榪涘叆緹婄兢鍚?/span>,涔熷紑濮嬪悆緹娿傜嫯瀛愪笉浣嗘瘮鐙煎嚩鐚涳紝鑰屼笖椋熼噺鎯婁漢錛屾瘡澶╅兘瑕佸悆涓鍙緤銆?/span>
榪欐牱緹婄兢灝卞ぉ澶╅兘瑕佽榪芥潃錛屾儕鎭愪竾鐘躲?/span>
緹婄兢璧剁揣璇蜂笂甯濇崲涓澶寸嫯瀛愩備笉鏂欙紝涓婂笣淇濈鐨勯偅澶寸嫯瀛愪竴鐩存病鏈夊悆涓滆タ錛屾楗ラタ闅捐?/span>,瀹冩墤榪涚緤緹わ紝姣斿墠闈㈤偅澶寸嫯瀛愬挰寰楁洿鐤媯銆?/span>
緹婄兢涓澶╁埌鏅氬彧鏄冨懡錛岃繛鑽夐兘蹇悆涓嶆垚浜嗐?/span>
鍗楄竟鐨勭緤緹ゅ簡騫歌嚜宸遍夊浜嗗ぉ鏁岋紝鍙堝槻絎戝寳杈圭殑緹婄兢娌℃湁鐪煎厜銆?/span>
鍖楄竟鐨勭緤緹ら潪甯稿悗鎮(zhèn)旓紝鍚戜笂甯濆ぇ鍊掕嫤姘?/span>,瑕佹眰鏇存崲澶╂晫錛屾敼瑕佷竴鍙嫾銆?/span>
涓婂笣璇達細“澶╂晫涓鏃︾‘瀹氾紝灝變笉鑳芥洿鏀?/span>,蹇呴』涓栦唬鐩擱殢,浣犱滑鍞竴鐨勬潈鍒╂槸鍦ㄤ袱澶寸嫯瀛愪腑閫夋嫨銆?#8221;
鍖楄竟鐨勭緤緹ゅ彧濂芥妸涓ゅご鐙瓙涓嶆柇鏇存崲銆?/span>
鍙袱澶寸嫯瀛愬悓鏍峰嚩孌嬶紝鎹㈠摢涓澶撮兘姣斿崡杈圭殑緹婄兢鎮(zhèn)叉儴寰楀錛屽畠浠儲鎬т笉鎹簡,璁╀竴澶寸嫯瀛愬悆寰楄啒鑲ヤ綋澹?/span>,鍙︿竴澶寸嫯瀛愬垯楗垮緱綺劇槮銆?/span>
鐪肩湅閭eご鐦︾嫯瀛愬揩瑕侀タ姝諱簡,緹婄兢鎵嶈涓婂笣鎹竴澶淬?/span>
榪欏ご鐦︾嫯瀛愮粡榪囬暱鏃墮棿鐨勯ゥ楗垮悗,鎱㈡參鎮(zhèn)熷嚭浜嗕竴涓亾鐞?/span>:
鑷繁铏界劧鍑剁寷寮傚父,涓鐧懼彧緹婇兘涓嶆槸瀵規(guī)墜,鍙槸鑷繁鐨勫懡榪愭槸鎿嶇旱鍦ㄧ緤緹ゆ墜閲岀殑銆?/span>
緹婄兢闅忔椂鍙互鎶婅嚜宸遍佸洖涓婂笣閭i噷,璁╄嚜宸遍ケ鍙楅ゥ楗跨殑鐓庣啲,鐢氳嚦鏈夊彲鑳介タ姝匯?/span>
鎯抽氳繖涓亾鐞嗗悗,鐦︾嫯瀛愬氨瀵圭緤緹ょ壒鍒姘?/span>,鍙悆姝葷緤鍜岀梾緹?/span>,鍑℃槸鍋ュ悍鐨勭緤瀹冮兘涓嶅悆浜嗐?/span>
緹婄兢鍠滃嚭鏈涘,鏈夊嚑鍙皬緹婃彁璁共鑴嗗浐瀹氳鐦︾嫯瀛?/span>,涓嶈閭eご鑲ョ嫯瀛愪簡銆?/span>
涓鍙佸叕緹婃彁閱掕:“鐦︾嫯瀛愭槸鎬曟垜浠佸畠鍥炰笂甯濋偅閲屾尐楗?/span>,鎵嶅鎴戜滑榪欎箞濂姐?/span>
涓囦竴鑲ョ嫯瀛愰タ姝諱簡,鎴戜滑娌℃湁浜嗛夋嫨鐨勪綑鍦?/span>,鐦︾嫯瀛愬緢蹇氨浼氭仮澶嶅嚩孌嬬殑鏈с?#8221;
緹婄兢瑙夊緱鑰佺緤璇村緱鏈夌悊,涓轟簡涓嶈鍙︿竴澶寸嫯瀛愰タ姝?/span>,瀹冧滑璧剁揣鎶婂畠鎹㈠洖鏉ャ?/span>
鍘熷厛鑶樿偉浣撳.鐨勯偅澶寸嫯瀛?/span>,宸茬粡楗垮緱鍙墿涓嬬毊鍖呴澶翠簡,騫朵笖涔熸噦寰椾簡鑷繁鐨勫懡榪愭槸鎿嶇旱鍦ㄧ緤緹ゆ墜閲岀殑閬撶悊銆?/span>
涓轟簡鑳藉湪鑽夊師涓婂緟涔呬竴鐐?/span>,瀹冪珶鐧捐埇璁ㄥソ璧風緤緹ゆ潵銆傝岄偅澶磋閫佷氦緇欎笂甯濈殑鐙瓙,鍒欓毦榪囧緱嫻佷笅浜嗙溂娉?/span>
鍖楄竟鐨勭緤緹ゅ湪緇忓巻浜嗛噸閲嶇(闅懼悗,緇堜簬榪囦笂浜嗚嚜鐢辮嚜鍦ㄧ殑鐢熸椿銆?/span>
鍗楄竟鐨勯偅緹ょ緤鐨勫澧冨嵈瓚婃潵瓚婃?zhèn)叉儴浜?/span>,閭e彧鐙煎洜涓烘病鏈夌珵浜夊鎵?/span>,緹婄兢鍙堟棤娉曟洿鎹㈠畠,
瀹冨氨鑳′綔闈炰負,姣忓ぉ閮借鍜鍑犲崄鍙緤,榪欏彧鐙兼棭宸蹭笉鍚冪緤鑲変簡,瀹冨彧鍠濈緤蹇冮噷鐨勮銆?/span>
瀹冭繕涓嶅噯緹婂彨,鍝彧鍙氨绔嬪埢鍜鍝彧銆?/span>
鍗楄竟鐨勭緤緹ゅ彧鑳藉湪蹇冧腑鍝鍙?/span>:“鏃╃煡閬撹繖鏍鳳紝榪樹笉濡傝涓ゅご鐙瓙銆?#8221;