锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 澶у悕榧庨紟鐨?a target="_blank" style="color: rgb(0, 68, 170); text-decoration: none; ">Zend鍏徃鍦↖T鐣岀殑鐭ュ悕搴︽槸涓璺鍗囧晩錛屽ス鏄痯hp鐨勫晢涓氬叕鍙革紝闅忕潃php鍦ㄧ紪紼嬭璦涓秺鏉ヨ秺澶氱殑琚嬌鐢紝鎹湰浜轟笉鐏甸氱殑娑堟伅錛岃嚜9鏈堜互鏉ワ紝php宸茬粡瓚呰秺C++鎺掑悕絎笁浜?/a>錛岃繖鐪熸槸涓涓尟濂嬩漢蹇冪殑娑堟伅錛屽綋鍒濋夋嫨鍋歱hp錛屾鏃舵鍒伙紝涔熻鎴戞劅鍒板間簡錛佸敖綆″姝わ紝浣犱笉寰椾笉鎵胯錛宲hp鑳芥嬁鍒扮涓夊悕鐨勫ソ鎴愮嘩錛屼竴瀹氭槸鏈夋垜鐨勮礎鐚殑~!!閭d箞鏈夋病鏈変竴澶╋紝php鑳藉仛鍒扮紪紼嬭璦涓殑澶存妸浜ゆ鍛紵鎴戞兂涓嶄細鐨勶紝濡傛灉浣犲湪鍝噷鐪嬪埌榪欎釜鎺掕姒滐紝閭e畠涓瀹氭槸涓嶆潈濞佺殑銆?/p> OK錛岃█褰掓浼狅紝鍑轟簬寰堝鍚屽璁や負zend studio鏄畼鏂圭綉绔欑殑涓嶆紜鐭ワ紙涓昏琛ㄧ幇灝辨槸鍚戞垜绱㈠彇zend server,zend Guard鐨勬敞鍐岀爜錛夛紝鎴戝氨鏉ヨ璇磋繖涓獄end鍏徃濂瑰埌搴曟槸涓粈涔堜笢瑗匡紝鎴栬鎴戞妸鏍囬鏀規垚銆?span style="text-decoration: underline; ">zend鍏徃鐨勯偅浜涗簨鍎?/span>銆嬶紝澶ф鏇磋兘絎﹀悎涓浗浜虹殑闃呰涔犳儻銆傞『渚胯涓涓嬶紝zend studio鏄叕鐩婃ф皯闂寸珯鐐?/strong>銆?/p> 鐢變簬zend鍏徃鐨勪駭鍝佸拰php鏈夌潃緇濆鐨勫叧緋伙紝鐒惰屽叾姣忎釜浜у搧涔嬮棿绔熺劧涔熸湁榪欏崈涓濅竾緙曠殑鑱旂郴錛岃繖灝辨槸涓涓緢鍊煎緱縐伴亾鐨勪簨鎯呬簡錛岀敋鑷沖拰閲戝焊鐨勬渚犲皬璇存湁寮傛洸鍚屽伐涔嬪銆備笅闈㈡垜浠竴涓緄彣錛堟帓鍚嶄笉鍒嗗厛鍚庯紝浣唞end studio鎺掔涓涓級銆?span id="more-833"> 1銆乑end Stduio 榪欐槸鎴戣涓簔end鍏徃鍞竴榪樻湁蹇呰瀛樺湪鐨勭湡姝e師鍥狅紝鎴戝帉鐑︿簡濯掍綋涓鎻愬埌zend studio灝辯収鏈縐戠殑閬撴瘮“涓涓薄鑾峰ぇ濂栫殑涓撲笟 PHP 闆嗘垚寮鍙戠幆澧冿紝鍏峰鍔熻兘寮哄ぇ鐨勪笓涓氱紪杈戝伐鍏峰拰璋冭瘯宸ュ叿……”錛岃櫧鐒朵簨瀹炰笂紜疄鏄繖涔堝洖浜嬶紝zend studio紜疄鏄竴涓己澶х殑php闆嗘垚寮鍙戠幆澧冿紝鎴戦夋嫨錛屾垜鍠滄錛佷絾榪欓噷鎴戞兂鎻愰啋涓嬪ぇ瀹訛紝zend studio鏄晢涓氳蔣浠躲?/p> 2銆乑end Debugger 鎬繪槸浠嬬粛涓涓晢涓氬叕鍙哥殑鍟嗕笟浜у搧錛岄毦鍏嶆湁鎵撳晢涓氬箍鍛婁箣瀚岋紝铏界劧鎴戞牴鏈氨涓嶆槸涓涓晢浜猴紝鎵浠ユ帴涓嬫潵鎴戝氨椹笂鎼嚭zend debugger錛堟垜鍓嶄笉涔呭垰濂藉啓浜嗕竴綃?a style="color: rgb(0, 68, 170); text-decoration: none; ">zend debugger鐨勭粓鏋佸畨瑁呮暀紼?/a>錛夛紝zend debugger鏄痾end鍏徃涓烘暟涓嶅鐨勫厤璐逛駭鍝侊紝浣撶Н涓嶅ぇ錛屽畨瑁呮柟渚匡紝鍔熻兘涔熷緢寮哄ぇ錛屼竴鑸渶瑕佽皟璇昿hp紼嬪簭鐨勬椂鍊欙紝瑁呬笂瀹冨氨澶熺敤浜嗐?/p> 3銆乑end Server 瀹為檯涓婃垜騫舵病鏈夋悶娓呮zend server鐨勭湡姝f剰鍥撅紝鎹閽堝php鍋氫簡涓撻棬鐨勪紭鍖栵紝騫朵笖鏄晢涓氳蔣浠訛紝浣嗗叾涓嶅叏鏄敹璐圭殑錛屽彧鏄儴鍒嗙粍浠訛紙鎴戝ぇ綰﹀湪3涓湀鍓嶈瘯鐢ㄨ繃zend server錛岃蹇嗘湁浜涙ā緋婏級錛屽唴緗殑鏄痑pache鏈嶅姟鍣紙褰撶劧浣犲彲浠ヤ笉閫夋嫨鍐呯疆錛夛紝铏界劧濂歸泦鎴愪簡Zend Optimizer銆乑end Guard Loader銆乑end Data Cache銆乑end Debugger銆乑end Framework錛屼絾鍦ㄦ垜鐪嬫潵榪欏拰鍏嶈垂鐨?a style="color: rgb(0, 68, 170); text-decoration: none; ">xampp 4銆乑end Optimizer 榪欏張鏄痾end 鍏徃鐨勫厤璐逛駭鍝佷箣涓錛孼end Optimizer鐨勬渶澶т綔鐢ㄦ槸瑙e瘑瑙f瀽琚珃end Guard鍔犲瘑浜嗙殑php婧愭枃浠訛紝鍏奸【浼樺寲php鎬ц兘鐨勪綔鐢紝鍥犳錛屾偍鍦ㄩ儴緗叉湇鍔″櫒鐨勬椂鍊欏皢zend Optimizer欏轟究瀹夎涓婃病鏈変換浣曠殑鍧忓錛屽綋鐒訛紝濡傛灉浣犺喘涔頒簡涓浠絑end Guard鍔犲瘑榪囩殑php婧愮爜錛岄偅浣犲氨蹇呴』瀹夎濂逛簡銆?/p> 5銆乑end Guard Zend Guard鏄竴涓潪甯告湁鐢ㄧ殑浜у搧錛屽綋鐒跺ス涔熸槸涓涓晢涓氳蔣浠訛紝濡傛灉浣犱笉鎵撶畻灝嗕綘鐨刾hp浠g爜寮婧愶紝閭d箞鍙互閫夋嫨Zend Guard鏉ヤ繚鎶や綘鐨勭爺絀舵垚鏋滐紝鏈鏂扮増鐨勫疂椹?緋伙紝鎹寮哄害涓嶆槸涓鑸殑澶э紝鑳藉鍦ㄤ繚鎶ゆ湡鍐呭畨鍏ㄤ笉琚牬瑙c傚煎緱涓鎻愮殑鏄紝鐢╖end Guard鍔犲瘑榪囦簡鐨刾hp婧愪唬鐮侊紝鍦ㄤ綘鐨勬湇鍔″櫒鐜涓繀欏誨畨瑁匷end Optimizer鏉?#8220;姝e父榪愯”涔嬶紙鐪嬶紒閲戝焊鐨勫ぇ甯堥鑼冨氨褰版樉鍑烘潵浜?/em>錛夈?/p> 6銆乑end Framework 榪欏張鏄痾end 鍏徃榪戝勾鏉ョ殑閲嶈浜у搧錛宲hp鐣孎ramework鐨勫叴璧鳳紝鏃犵枒鐨勭畝鍖栧紑鍙戯紝鎻愰珮鏁堢巼錛屽嵆“鏁忔嵎楂樻晥”鍥涘瓧鏂歸拡錛岃繖涓粎浠呮槸紼嬪簭鍛樺湪寮鍙戝伐浣滀笂鐨勬弿榪幫紝鑰宲hp鐨勮繍琛屾晥鐜囨ц兘涓婂嵈騫墮潪鏈夎川鐨勯璺冦傚洜姝わ紝鏈漢涔熶笉鏄潪甯稿磭灝氭鏋訛紝灝界鍥藉唴鐨剄eephp,thinkphp絳夎憲鍚嶆鏋跺彂灞曠殑濡傜伀濡傝嵓錛屾鏋剁殑榪芥崸鑰呬篃鏄娼按涓鑸紝鏈変釜浜轟緷鐒舵垜琛屾垜绱犵殑“鍧愪互寰呮瘷”錛屼粬鏄斺攇ently銆傜劧鑰孼end Framework騫墮潪涓鏃犳槸澶勶紝濂規槸涓涓紵澶х殑妗嗘灦浜у搧錛屽彂灞曠ǔ鍋ワ紝鐜板湪鐨勭敤鎴風兢涔熸槸铔簽澶х殑錛堜腑鍥戒漢姣旇緝榪蜂俊瀹樻柟錛屽綋鐒朵篃鍥犱負濂圭‘瀹炰笉閿欙級銆?strong>Zend studio浠庡疂椹?緋誨紑濮嬶紝宸茬粡瀹岀編鐨勬敮鎸亃end Framework鐨勫紑鍙戙佽皟璇曡繍琛屼竴鏉¢緳浜嗐?/p> 7銆乑end Core 鐩磋瘧榪囨潵鏄?em>zend鏍稿績 8銆乑end Platform 鏇村噯紜殑璇村ス鏄竴鏁村鐨勪紒涓氭湇鍔″櫒瑙e喅鏂規錛屼紒涓氱駭搴旂敤浠庢潵閮芥槸鍜屽ぇ鍨嬭仈緋誨湪涓璧風殑錛屽洜姝わ紝浠涔堥泦緹ゅ晩銆侀樀鍒楀晩銆佹帶鍒朵腑蹇冨晩銆佺瓑絳夌瓑絳夊zend platform鏉ヨ鍏ㄩ兘涓嶅湪璇濅笅錛屽ス鑳藉璺熻釜Php榪愯涓殑閿欒錛岀洃鎺hp榪愯鐨勬ц兘錛岀簿紜殑鎵懼嚭鐡墮錛岃繖鏄涔堢墰閫肩殑浜у搧鍟娿傞偅涔堬紝闇瑕佸灝戦挶鍛紵鍙998錛屽叏鐞冮檺閲?0濂楋紝璧剁揣鎷胯搗鐢佃瘽璁㈣喘鍚э紒……鎶介浜嗕竴涓嬶紝渚濇垜鐪嬶紝zend server姝h閫愭鏇夸唬鎺墇end platform錛屼笉姝㈡槸鍋氬珌琛o紝zend 榪樿鐢熶駭鏂板錛佸洜姝わ紝Zend Server椋庡ご姝e姴銆俍end Platform涓巣end studio鐨勫叧緋誨氨鏄墠鑰呰兘澶熸彁渚涚粰鍚庤呴潪甯稿己澶х殑鏈嶅姟绔敮鎸侊紝褰撶劧榪欎釜寮哄ぇ鏄痾end debugger鏃犳硶浼佸強鐨勶紝褰撳ぇ澶氭暟鏃跺欙紝鎴戜滑涓漢寮鍙戣呯敤涓嶇潃榪欎箞寮哄ぇ錛屽畼鏂瑰彲浠ヤ笅杞藉埌Zend Platform鐨?0澶╄瘯鐢ㄧ増錛堝氨鏄濂規槸鍟嗕笟杞歡錛夛紝鎶辨瓑錛屾垜涔熸病鏈塟end Platform鐨勬敞鍐岀爜鎴栬呮敞鍐屾満銆傚ス涓巣end server鐨勫叧緋誨憿錛屽氨鏄痁end Server鍦ㄥ珌琛i噷闈㈠寘浜嗕釜鏂板銆?/p> Zend鍏徃鏄竴涓湁娼滃姏鐨勫叕鍙革紝涓庡悇鐣岀殑鍚堜綔姝g悍綰峰睍寮錛屼篃紲漽end瓚婅蛋瓚婅繙銆?/p>
鐢╒isual C++鎿嶄綔INI鏂囦歡 鍦ㄦ垜浠啓鐨勭▼搴忓綋涓?鎬繪湁涓浜涢厤緗俊鎭渶瑕佷繚瀛樹笅鏉?浠ヤ究瀹屾垚紼嬪簭鐨勫姛鑳?鏈綆鍗曠殑鍔炴硶灝辨槸灝嗚繖浜涗俊鎭啓鍏NI鏂囦歡涓?紼嬪簭鍒濆鍖栨椂鍐嶈鍏?鍏蜂綋搴旂敤濡備笅: 涓.灝嗕俊鎭啓鍏?INI鏂囦歡涓? 1.鎵鐢ㄧ殑WINAPI鍑芥暟鍘熷瀷涓? BOOL WritePrivateProfileString( 鍏朵腑鍚勫弬鏁扮殑鎰忎箟: 銆LPCTSTR lpAppName 鏄疘NI鏂囦歡涓殑涓涓瓧孌靛悕. LPCTSTR lpKeyName 鏄痩pAppName涓嬬殑涓涓敭鍚?閫氫織璁插氨鏄彉閲忓悕. 銆LPCTSTR lpString 鏄敭鍊?涔熷氨鏄彉閲忕殑鍊?涓嶈繃蹇呴』涓篖PCTSTR鍨嬫垨CString鍨嬬殑. 銆LPCTSTR lpFileName 鏄畬鏁寸殑INI鏂囦歡鍚? 2.鍏蜂綋浣跨敤鏂規硶:璁劇幇鏈変竴鍚嶅鐢?闇鎶婁粬鐨勫鍚嶅拰騫撮緞鍐欏叆 c:\stud\student.ini 鏂囦歡涓? CString strName,strTemp; 姝ゆ椂c:\stud\student.ini鏂囦歡涓殑鍐呭濡備笅: [StudentInfo] 3.瑕佸皢瀛︾敓鐨勫勾榫勪繚瀛樹笅鏉?鍙渶灝嗘暣鍨嬬殑鍊煎彉涓哄瓧絎﹀瀷鍗沖彲: strTemp.Format("%d",nAge); 浜?灝嗕俊鎭粠INI鏂囦歡涓鍏ョ▼搴忎腑鐨勫彉閲? 1.鎵鐢ㄧ殑WINAPI鍑芥暟鍘熷瀷涓? DWORD GetPrivateProfileString( 鍏朵腑鍚勫弬鏁扮殑鎰忎箟: 鍓嶄簩涓弬鏁頒笌 WritePrivateProfileString涓殑鎰忎箟涓鏍? lpDefault : 濡傛灉INI鏂囦歡涓病鏈夊墠涓や釜鍙傛暟鎸囧畾鐨勫瓧孌靛悕鎴栭敭鍚?鍒欏皢姝ゅ艱祴緇欏彉閲? 銆lpReturnedString : 鎺ユ敹INI鏂囦歡涓殑鍊肩殑CString瀵硅薄,鍗崇洰鐨勭紦瀛樺櫒. 銆nSize : 鐩殑緙撳瓨鍣ㄧ殑澶у皬. 銆lpFileName : 鏄畬鏁寸殑INI鏂囦歡鍚? 2.鍏蜂綋浣跨敤鏂規硶:鐜拌灝嗕笂涓姝ヤ腑鍐欏叆鐨勫鐢熺殑淇℃伅璇誨叆紼嬪簭涓? CString strStudName; 銆鎵ц鍚?strStudName 鐨勫間負:"寮犱笁",鑻ュ墠涓や釜鍙傛暟鏈夎,鍏跺間負:"榛樿濮撳悕". 3.璇誨叆鏁村瀷鍊艱鐢ㄥ彟涓涓猈INAPI鍑芥暟: UINT GetPrivateProfileInt( 榪欓噷鐨勫弬鏁版剰涔変笌涓婄浉鍚?浣跨敤鏂規硶濡備笅: nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini"); 涓?寰幆鍐欏叆澶氫釜鍊?璁劇幇鏈変竴紼嬪簭,瑕佸皢鏈榪戜嬌鐢ㄧ殑鍑犱釜鏂囦歡鍚嶄繚瀛樹笅鏉?鍏蜂綋紼嬪簭濡備笅: 1.鍐欏叆: CString strTemp,strTempA; 2.璇誨嚭: nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\\usefile\\usefile.ini"); 琛ュ厖鍥涚偣: //---------------------------------------------------------------------------------- 綾繪弿榪幫細 鏂囦歡 1: class CIni public: BOOL DelAllSections(); }; 鏂囦歡 2: #include "StdAfx.h" #define MAX_ALLSECTIONS 2048 //鍏ㄩ儴鐨勬鍚?br style="line-height: 23px; ">#define MAX_SECTION 260 //涓涓鍚嶉暱搴?br style="line-height: 23px; ">#define MAX_ALLKEYS 6000 //鍏ㄩ儴鐨勯敭鍚?br style="line-height: 23px; ">#define MAX_KEY 260 //涓涓敭鍚嶉暱搴?/p> BOOL CIni::SetFileName(LPCTSTR lpFileName) CString CIni::GetFileName(void) BOOL CIni::SetValue(LPCTSTR lpSection, LPCTSTR lpKey, LPCTSTR lpValue,bool bCreate) //浠ヤ笅if璇彞琛ㄧず濡傛灉璁劇疆bCreate涓篺alse鏃訛紝褰撴病鏈夎繖涓敭鍚嶆椂鍒欒繑鍥濼RUE錛堣〃紺哄嚭閿欙級 if(WritePrivateProfileString(lpSection,lpKey,lpValue,m_strFileName)) CString CIni::GetValue(LPCTSTR lpSection, LPCTSTR lpKey) dValue=GetPrivateProfileString(lpSection,lpKey,"",lpValue,MAX_PATH,m_strFileName); BOOL CIni::DelSection(LPCTSTR lpSection) BOOL CIni::DelKey(LPCTSTR lpSection, LPCTSTR lpKey) int CIni::GetSections(CStringArray& arrSection) //浠ヤ笅寰幆錛屾埅鏂埌涓や釜榪炵畫鐨? iMaxCount=i+1; //瑕佸涓涓?鍙峰厓绱犮傚嵆鎵懼嚭鍏ㄩ儴瀛楃涓茬殑緇撴潫閮ㄥ垎銆?br style="line-height: 23px; ">arrSection.RemoveAll();//娓呯┖鍘熸暟緇?/p> for(i=0;i<iMaxCount;i++) return (int)arrSection.GetSize(); int CIni::GetKeyValues(CStringArray& arrKey,CStringArray& arrValue, LPCTSTR lpSection) GetPrivateProfileSection(lpSection,chKeyNames,MAX_ALLKEYS,m_strFileName); for(i=0;i<MAX_ALLKEYS;i++) iMaxCount=i+1; //瑕佸涓涓?鍙峰厓绱犮傚嵆鎵懼嚭鍏ㄩ儴瀛楃涓茬殑緇撴潫閮ㄥ垎銆?br style="line-height: 23px; ">arrKey.RemoveAll();//娓呯┖鍘熸暟緇?br style="line-height: 23px; ">arrValue.RemoveAll(); for(i=0;i<iMaxCount;i++) } return (int)arrKey.GetSize(); BOOL CIni::DelAllSections() /*鑾峰緱鍊?br style="line-height: 23px; ">TRACE("%s",ini.GetValue("孌?","閿?")); /*娣誨姞鍊?br style="line-height: 23px; ">ini.SetValue("鑷畾涔夋","閿?","鍊?); /*鏋氫婦鍏ㄩ儴孌靛悕 /*鏋氫婦鍏ㄩ儴閿悕鍙婂?br style="line-height: 23px; ">CStringArray arrKey,arrValue; /*鍒犻櫎閿?br style="line-height: 23px; ">ini.DelKey("孌?","閿?"); /*鍒犻櫎孌?br style="line-height: 23px; ">ini.DelSection("孌?"); /*鍒犻櫎鍏ㄩ儴 鎿嶄綔閰嶇疆鏂囦歡ini 銆銆閫氬父涓哄簲鐢ㄧ▼搴忔墍縐佹湁鐨勫垵濮嬪寲鏂囦歡姣旇緝灝忥紝榪欐牱鍙互鍑忓皯紼嬪簭鍦ㄥ垵濮嬪寲鏃舵墍璇誨彇鐨勪俊鎭噺錛屼粠鑰屾彁楂樼▼搴忕殑鍚姩閫熷害銆傝岀郴緇熷垵濮嬪寲鏂囦歡Win.ini鐢變簬闄や簡璁板綍鏈夊叧緋葷粺鐨勫ぇ閲忎俊鎭錛岃繕瀛樺偍鐫璁稿鍏朵粬搴旂敤杞歡鐨勫垵濮嬪寲鏁版嵁錛屽洜姝ゅ叾閫氬父姣旇緝搴炲ぇ錛岃闂殑鏁版嵁閲忚榪滄瘮縐佹湁鐨勯厤緗枃浠跺ぇ寰楀銆傚娌℃湁蹇呰錛屼竴鑸笉寤鴻瀵筗in.ini鏂囦歡榪涜鎿嶄綔錛屼絾濡傛灉寰呭瓨鍙栫殑淇℃伅娑夊強鍒癢indows緋葷粺鐜鎴栨槸鍏朵粬搴旂敤紼嬪簭鏃? 灝卞繀欏誨Win.ini榪涜璇誨啓璁塊棶錛屽茍鍦ㄨ闂殑鍚屾椂鍙戦乄M_WININICHANGE娑堟伅緇欐墍鏈夌殑欏跺眰紿楀彛錛岄氱煡鍏朵粬榪涚▼緋葷粺鍒濆鍖栨枃浠跺凡琚洿鏀廣?/p> 銆銆閰嶇疆鏂囦歡閲岀殑淇℃伅涔嬫墍浠ヨ兘涓虹郴緇熷拰浼楀涓嶅悓綾誨瀷鐨勫簲鐢ㄧ▼搴忚鍙栧茍璇嗗埆錛屾槸鐢變簬鍏跺唴閮ㄥ鏁版嵁鐨勫瓨鍙栭噰鐢ㄤ簡棰勫厛綰﹀畾鐨?#8220;欏?鍊煎錛圗ntry-value pairs錛?#8221;瀛樺偍緇撴瀯, 騫跺寰呭瓨鍙栫殑鏁版嵁鍒嗛棬鍒被鍦拌繘琛屽瓨鍌ㄣ備笅闈㈡槸緋葷粺鐩綍涓媁in.ini鏂囦歡鐨勯儴鍒嗗唴瀹癸細 [windows] 鍦ㄦ錛岄厤緗枃浠跺皢淇℃伅鍒嗕負鑻ュ共“鑺?#8221;錛岃妭鏍囬鏀懼湪鏂規嫭鍙蜂腑錛屽“[Desktop]”灝辨槸Desktop鑺傦紝鍦ㄦ瘡涓涓妭涓寘鍚簡涓浜涗笌涔嬬浉鍏崇殑“欏?#8221;錛屽茍閫氳繃絳夊彿瀵瑰叾榪涜璧嬪箋備竴鑸艦寮忓涓嬶細 [SECTION] 銆銆鍦ㄥ垵濮嬪寲鏂囦歡涓紝VALUE鍊煎彧鑳芥湁涓ょ鏁版嵁綾誨瀷錛氭暟鍊煎拰瀛楃涓層俉indows鍒嗗埆涓鴻繖涓ょ鏁版嵁綾誨瀷鎻愪緵浜嗕袱濂桝PI鍑芥暟瀵瑰垵濮嬪寲鏂囦歡榪涜鏁版嵁璇誨彇錛屽湪鍐欏叆鍒濆鍖栨枃浠舵椂鍒欏彧鏀寔瀵瑰瓧絎︿覆鐨勫啓鍏ワ紝鏁板肩瓑綾誨瀷蹇呴』鍏堣繘琛屾暟鎹被鍨嬬殑杞崲錛岀劧鍚庢墠鑳藉啓鍏ュ埌鍒濆鍖栨枃浠躲傜鏈夊垵濮嬪寲鏂囦歡鐨勮闂銆瀵圭鏈夊垵濮嬪寲鏂囦歡鐨勬暟鎹瓨鍙栨槸鐢盙etPrivateProfileInt錛堬級銆丟etPrivateProfileString錛堬級鍜學ritePrivateProfileString錛堬級絳変笁涓狝PI鍑芥暟鏉ュ畬鎴愮殑銆傚叾鍑芥暟璇存槑濡備笅錛?/p> UINT GetPrivateProfileInt(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 DWORD GetPrivateProfileString(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 BOOL WritePrivateProfileString(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 鍏朵腑錛孏etPrivateProfileInt錛堬級榪斿洖鐨勬槸鍒濆鍖栨枃浠秎pFileName涓璴pAppName鑺傚唴lpKeyName欏圭殑鏁存暟鍊鹼紝濡傛灉娌℃湁鎵懼埌璇ラ」鍒欒繑鍥炵己鐪佸糿Default銆傚鏋滄欏圭洰瀛樺湪錛屼絾鍊間笉涓烘暣鏁幫紝鍒欒繑鍥?銆傚鏋滄煇欏圭洰鐨勫間腑鍚湁闈炴暟瀛楀瓧絎﹀垯鍙繑鍥炵涓涓潪鏁板瓧鍓嶇殑瀛楃錛屼緥濡傚浜?#8220;Value = 21century”鍒欏彧榪斿洖鏁板?1銆傚垵濮嬪寲鏂囦歡鍚峫pFileName鍙互鏄叏璺緞涔熷彲浠ュ彧鏄枃浠跺悕錛屽鏋滀笉鎸囧畾鍏蜂綋璺緞錛學indows緋葷粺灝嗗湪緋葷粺鐩綍瀵規枃浠惰繘琛屽鎵俱侴etPrivateProfileString錛堬級鍜學ritePrivateProfileString錛堬級鐨勭敤娉曞熀鏈笌涔嬬被浼鹼紝鍙槸澶勭悊瀵硅薄鐨勬暟鎹被鍨嬩笉鍚屻?/p> 2 鐭ヨ瘑搴旂敤 CString sPath,sMsg,sTime,sDate; // 鑾峰彇褰撳墠搴旂敤紼嬪簭鍏ㄨ礬寰?br style="line-height: 23px; ">GetModuleFileName(NULL, buffer, MAX_PATH); // 寰楀埌鍒濆鍖栨枃浠剁殑鍏ㄨ礬寰?br style="line-height: 23px; ">sPath += "\\Sample04.ini"; // 寰楀埌紼嬪簭绱榪愯嬈℃暟 // 寰楀埌涓婃榪愯鏃ユ湡 // 鏄劇ず浠庡垵濮嬪寲鏂囦歡鑾峰彇鍒扮殑鏂囦歡淇℃伅 // 绱姞榪愯嬈℃暟,騫朵繚瀛樺埌鍒濆鍖栨枃浠?br style="line-height: 23px; ">Time++; // 鑾峰彇褰撳墠鏃ユ湡,騫朵繚瀛樺埌鍒濆鍖栨枃浠?br style="line-height: 23px; ">CTime tm = CTime::GetCurrentTime(); 鍦ㄧ▼搴忔墽琛屽悗錛屽垵濮嬪寲鏂囦歡Sample04.ini鐨勫唴瀹逛負錛?br style="line-height: 23px; ">[DATE] 銆銆緋葷粺鐩綍涓嬬殑Win.ini鏄竴縐嶇壒孌婄殑鍒濆鍖栨枃浠訛紝涓昏涓虹郴緇熸彁渚涘垵濮嬪寲鏈嶅姟錛屽湪緋葷粺鍚姩鏃跺皢琚郴緇熸墍璁塊棶錛屽茍鏍規嵁鍏舵墍淇濆瓨鐨勫弬鏁板煎緋葷粺榪涜閰嶇疆銆俉indows涓撻棬鎻愪緵浜嗕笁涓狝PI鍑芥暟GetProfileInt錛堬級銆丟etProfileString錛堬級鍜學riteProfileString錛堬級瀵筗in.ini榪涜璇誨啓璁塊棶錛屽叾鍑芥暟鐢ㄦ硶鍚岃闂鏈夊垵濮嬪寲鏂囦歡鐨勯偅鍑犱釜鍑芥暟闈炲父綾諱技錛屽彧鏄笉蹇呭啀鍘繪寚瀹氬垵濮嬪寲鏂囦歡鍚嶃備笅闈㈡槸榪欎笁涓嚱鏁扮殑鍘熷瀷澹版槑錛?/p> UINT GetProfileInt(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 DWORD GetProfileString(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 BOOL WriteProfileString(LPCTSTR lpAppName, // 鑺傚悕鍦板潃 銆銆鍙瀵瑰墠闈㈠縐佹湁鍒濆鍖栨枃浠惰繘琛岃闂殑浠g爜紼嶅姞鏀瑰姩鍗沖彲灝嗙▼搴忕殑閰嶇疆淇℃伅娣誨姞鍒癢in.ini涓紝鏀瑰姩鍚庣殑浠g爜濡備笅錛?/p> CString sPath,sMsg,sTime,sDate; // 寰楀埌紼嬪簭绱榪愯嬈℃暟 // 寰楀埌涓婃榪愯鏃ユ湡 // 鏄劇ず浠庡垵濮嬪寲鏂囦歡鑾峰彇鍒扮殑鏂囦歡淇℃伅 // 绱姞榪愯嬈℃暟,騫朵繚瀛樺埌鍒濆鍖栨枃浠?br style="line-height: 23px; ">Time++; // 鑾峰彇褰撳墠鏃ユ湡,騫朵繚瀛樺埌鍒濆鍖栨枃浠?br style="line-height: 23px; ">CTime tm = CTime::GetCurrentTime(); 鐢變簬Win.ini鏂囦歡鏄郴緇熷垵濮嬪寲鏂囦歡錛屽湪紼嬪簭娌℃湁榪愯鍓嶆枃浠跺唴涓嶅惈“DATE”鍜?#8220;PROGRAM”絳夎嚜瀹氫箟鐨勮妭浠ュ強鍏朵笅鍚勯」錛屽洜姝ゅ湪紼嬪簭絎竴嬈℃墽琛屽悗錛屽皢鐢盬riteProfileString錛堬級鍑芥暟鍚慦in.ini鏂囦歡鏈熬鍒涘緩鐩稿叧鑺傘侀」錛屽茍瀹屾垚鏁版嵁鐨勫啓鍏ャ?br style="line-height: 23px; "> JavaDoc綾誨瀷錛?/span> /** * ... 紼嬪簭娉ㄩ噴 ... */ Qt綾誨瀷錛?/span> /*! * ... 紼嬪簭娉ㄩ噴... */ 鍗曡鍨嬪紡錛?/span> /// 榪欐槸涓涓畝媧佸瀷鐨勬敞閲?/span> //! 榪欎篃鏄竴涓畝媧佸瀷鐨勬敞閲?/span> 鐢?/span>Doxygen鐨勮繖鍑犵鍩烘湰娉ㄩ噴綾誨瀷灝卞彲浠ュ緩绔嬭凍浠ュ緩绔嬫枃妗d簡錛屽鏋滈渶瑕佹洿澶氬鏉傚姛鑳斤紝Doxygen榪樺彲浠ユ彁渚涢珮綰ф牸寮忓緇勶紙group錛夊拰鍒楄〃銆?/span> Doxygen鐨勫父鐢ㄦ敞閲婂弬鏁幫細 @file 妗f鐨勬壒娉ㄨ鏄庛?/span> @author 浣滆呯殑淇℃伅 @brief 鐢ㄤ簬class 鎴?/span>function鐨勬壒娉ㄤ腑錛屽悗闈負class 鎴?/span>function鐨勭畝鏄撹鏄庛?/span> @param 鏍煎紡涓?/span> @param arg_name 鍙傛暟璇存槑 涓昏鐢ㄤ簬鍑藉紡璇存槑涓紝鍚庨潰鎺ュ弬鏁扮殑鍚嶅瓧錛岀劧鍚庡啀鎺ュ叧浜庤鍙傛暟鐨勮鏄庛?/span> @return 鍚庨潰鎺ュ嚱鏁頒紶鍥炲肩殑璇存槑銆傜敤浜?/span>function鐨勬壒娉ㄤ腑銆傝鏄庤鍑芥暟鐨勪紶鍥炲箋?/span> @retval 鏍煎紡涓?/span> @retval value 浼犲洖鍊艱鏄?/span> 涓昏鐢ㄤ簬鍑藉紡璇存槑涓紝璇存槑鐗瑰畾浼犲洖鍊肩殑鎰忎箟銆傛墍浠ュ悗闈㈣鍏堟帴涓涓紶鍥炲箋傜劧鍚庡湪鏀捐浼犲洖鍊肩殑璇存槑銆?/span> Doxygen鐨勪嬌鐢紝濡備笅錛?/span> E:\>xstring鐩綍鍖呭惈涓嬪垪鏂囦歡錛?/span> Xstring.cpp Xstring.h 鍏朵腑xstring.h閲屽xstring綾葷殑StrToInt鏂規硶鐨勬敞閲婂涓嬶細 /** * 0. 搴忚█ Doxygen鏄熀浜嶨PL鐨勫紑婧愰」鐩紝鏄竴涓潪甯鎬紭縐鐨勬枃妗g郴緇燂紝褰撳墠鏀寔鍦ㄥぇ澶氭暟unix錛堝寘鎷琹inux錛夛紝windows瀹舵棌錛孧ac緋葷粺涓婅繍琛岋紝瀹屽叏鏀寔C++, C, Java, IDL錛圕orba鍜孧icrosoft 瀹舵棌錛夎璦錛岄儴鍒嗘敮鎸丳HP鍜孋#璇█錛岃緭鍑烘牸寮忓寘鎷琀TML銆乴atex銆丷TF銆乸s銆丳DF銆佸帇緙╃殑HTML鍜寀nix manpage銆傛湁寰堝寮婧愰」鐩紙鍖呮嫭鍓嶄袱綃囨枃绔犱粙緇嶇殑log4cpp鍜孋ppUnit錛夐兘浣跨敤浜哾oxygen鏂囨。緋葷粺銆傝屽浗鍐呯殑寮鍙戜漢鍛樺嵈浣跨敤鐨勪笉澶氾紝榪欓噷浠庡紑鍙戜漢鍛樹嬌鐢ㄧ殑瑙掑害浠嬬粛榪欎釜宸ュ叿錛屼嬌寮鍙戜漢鍛樼敤鏈灝戠殑浠d環灝藉揩鎺屾彙榪欑鎶鏈紝騫剁粨鍚堣繖涓伐鍏鋒帰璁ㄥ浣曟挵鍐欐敞閲婄殑闂銆備互涓嬩互linux涓嬬殑C++璇█涓轟緥榪涜浠嬬粛錛屼互涓嬭璁哄熀浜巇oxygen1.3.3銆?/p> 1. doxygen浣跨敤姝ラ Doxygen鍦ㄧ敓鎴愭枃妗f椂鍙互瀹氫箟欏圭洰灞炴т互鍙婃枃妗g敓鎴愯繃紼嬩腑鐨勫緢澶氶夐」錛屼嬌鐢ㄤ笅闈㈠懡浠よ兘澶熶駭鐢熶竴涓己鐪佺殑閰嶇疆鏂囦歡錛?br style="line-height: normal; ">doxygen -g [閰嶇疆鏂囦歡鍚峕 璁ヾoxygen鑷姩浜х敓鏂囨。錛屽鉤甯哥殑娉ㄩ噴椋庢牸鍙笉琛岋紝闇瑕侀伒寰猟oxygen鑷繁鐨勬牸寮忋傚叿浣撳浣曞啓doxygen璁よ瘑鐨勬敞閲婂湪絎?鑺傝緇嗕粙緇嶃?/p> OK錛屼唬鐮佺紪瀹屼簡錛屾敞閲婁篃鎸夌収鏍煎紡鍐欏ソ浜嗭紝鏈鍚庣殑鏂囨。鏄浣曠殑鍝紵闈炲父綆鍗曪紝榪愯涓嬮潰鐨勫懡浠わ紝鐩稿簲鐨勬枃妗e氨浼氫駭鐢熷湪鎸囧畾鐨勭洰褰曚腑銆?br style="line-height: normal; "> doxygen [閰嶇疆鏂囦歡鍚峕 闇瑕佹敞鎰忕殑鏄痙oxygen騫朵笉澶勭悊鎵鏈夌殑娉ㄩ噴錛宒oxygen閲嶇偣鍏蟲敞涓庣▼搴忕粨鏋勬湁鍏崇殑娉ㄩ噴錛屾瘮濡傦細鏂囦歡銆佺被銆佺粨鏋勩佸嚱鏁般佸彉閲忋佸畯絳夋敞閲婏紝鑰屽拷鐣ュ嚱鏁板唴鍙橀噺銆佷唬鐮佺瓑鐨勬敞閲娿?/p> 2. doxygen閰嶇疆鏂囦歡 瀵筪oxygen鐨勯厤緗枃浠剁殑淇敼鍒嗕負涓ょ被錛氫竴縐嶅氨鏄緭鍑洪夐」錛屾帶鍒跺浣曡В閲婃簮浠g爜銆佸浣曡緭鍑猴紱涓縐嶅氨鏄」鐩浉鍏崇殑淇℃伅錛屾瘮濡傞」鐩悕縐般佹簮浠g爜鐩綍銆佽緭鍑烘枃妗g洰褰曠瓑銆傚浜庣涓縐嶈緗ソ鍚庯紝閫氬父鎵鏈夐」鐩彲浠ュ叡鐢ㄤ竴浠介厤緗紝鑰屽悗涓縐嶆槸姣忎釜欏圭洰蹇呴』璁劇疆鐨勩備笅闈㈤夋嫨閲嶈鐨勶紝鏈夊彲鑳介渶瑕佷慨鏀圭殑閫夐」榪涜瑙i噴璇存槑錛屽叾浠栭夐」鍦ㄩ厤緗枃浠墮兘鏈夎緇嗚В閲娿?/p> TAG 緙虹渷鍊?鍚箟 3. doxygen娉ㄩ噴 娉ㄩ噴鍜屼唬鐮佸畬鍏ㄥ垎紱伙紝鏀懼湪鍏朵粬鍦版柟涔熸槸鍏佽鐨勶紝浣嗛渶瑕佷嬌鐢ㄧ壒孌婄殑鍛戒護鍔犱笂鍚嶇О鎴栬呭0鏄庤繘琛屾爣璇嗭紝姣斿錛歝lass銆乻truct銆乽nion銆乪num銆乫n銆乿ar銆乨ef銆乫ile銆乶amespace銆乸ackage銆乮nterface錛堣繖浜涗篃灝辨槸doxygen鍏蟲敞鐨勬敞閲婄被鍨嬶級銆傝繖閲屼笉鎺ㄨ崘浣跨敤錛屽緩璁敞閲婂敖閲忔斁鍦ㄤ唬鐮佸墠鍚庛傚叿浣撲嬌鐢ㄦ柟寮忓弬瑙乨oxygen鎵嬪唽銆?/p> 3.2 doxygen甯哥敤娉ㄩ噴鏍煎紡 瀵瑰嚱鏁扮殑娉ㄩ噴錛屾槸姣旇緝甯稿父闇瑕佹敞閲婄殑閮ㄥ垎銆傞櫎浜嗗畾涔夊叾綆瑕佽鏄庝互鍙婅緇嗘敞閲婏紝榪樺彲浠ヤ嬌鐢╬aram鍛戒護瀵瑰叾鍚勪釜鍙傛暟榪涜娉ㄩ噴錛屼嬌鐢╮eturn鍛戒護瀵硅繑鍥炲艱繘琛屾敞閲娿傚父瑙佺殑鏍煎紡濡備笅錛?br style="line-height: normal; ">/** 榪涜璁捐鏃訛紝閫氬父鏈夋ā鍧楃殑姒傚康錛屼竴涓ā鍧楀彲鑳芥湁澶氫釜綾繪垨鑰呭嚱鏁扮粍鎴愶紝瀹屾垚鏌愪釜鐗瑰畾鍔熻兘鐨勪唬鐮佺殑闆嗗悎銆傚浣曞榪欎釜姒傚康榪涜娉ㄩ噴錛焏oxygen鎻愪緵浜唃roup鐨勬蹇碉紝鐢熸垚鐨勬ā鍧楃殑娉ㄩ噴浼氬崟鐙斁鍦ㄤ竴涓ā鍧楃殑欏甸潰涓備嬌鐢ㄤ笅闈㈢殑鏍煎紡瀹氫箟涓涓猤roup銆?br style="line-height: normal; ">/** [group_name] [brief group description ] 瀵逛簬鏌愬嚑涓姛鑳界被浼肩殑浠g爜欏癸紙姣斿綾匯佸嚱鏁般佸彉閲忥級絳夛紝濡傛灉甯屾湜涓璧鋒坊鍔犳敞閲婏紝鑰屽張涓嶆兂鎻愬崌鍒版ā鍧楃殑姒傚康錛屽彲浠ラ氳繃涓嬮潰鐨勬柟寮忥細 3.3 doxygen甯哥敤娉ㄩ噴鍛戒護 鍒版涓烘錛屽父鐢ㄧ殑doxygen鐨勬敞閲婃牸寮忚璁哄畬姣曪紝鎴戜滑鑳藉鎸夌収涓瀹氱殑鏍煎紡鎾板啓doxygen璁よ瘑鐨勬敞閲婏紝騫惰兘澶熶嬌鐢╠oxygen鏂逛究蹇嵎鐨勭敓鎴愬搴旂殑鏂囨。錛屼笉榪囨敞閲婁腑搴旇鍐欎簺浠涔堬紝濡備綍鎾板啓鏈夋晥鐨勬敞閲婂彲鑳芥槸鍥版壈寮鍙戜漢鍛樼殑涓涓洿娣卞眰嬈$殑闂銆?/p> 4. 娉ㄩ噴鐨勪功鍐?br style="line-height: normal; ">娉ㄩ噴搴旇鎬庝箞鍐欙紝鍐欏榪樻槸鍐欏皯銆傝繃澶氱殑娉ㄩ噴鐢氳嚦浼氬共鎵板浠g爜鐨勯槄璇匯傚啓娉ㄩ噴鐨勪竴涓葷殑鍘熷垯灝辨槸娉ㄩ噴搴旇灝介噺鐢ㄦ潵琛ㄦ槑浣滆呯殑鎰忓浘錛岃嚦灝戜篃搴旇鏄涓閮ㄥ垎浠g爜鐨勬葷粨錛岃屼笉搴旇鏄浠g爜鐨勯噸澶嶆垨鑰呰В閲娿傚浠g爜鐨勯噸澶嶆垨鑰呰В閲婄殑浠g爜錛岀湅浠g爜鍙兘鏇村鏄撶悊瑙c傚弽鏄犱綔鑰呮剰鍥劇殑娉ㄩ噴瑙i噴浠g爜鐨勭洰鐨勶紝浠庤В鍐抽棶棰樼殑灞傛涓婅繘琛屾敞閲婏紝鑰屼唬鐮佹葷粨鎬ф敞閲婂垯鏄粠闂鐨勮В絳旂殑灞傛涓婅繘琛屾敞閲娿?/p> 鎺ㄨ崘鐨勫啓娉ㄩ噴鐨勮繃紼嬫槸棣栧厛浣跨敤娉ㄩ噴鍕懼嫆鍑轟唬鐮佺殑涓昏妗嗘灦錛岀劧鍚庢牴鎹敞閲婃挵鍐欑浉搴旂殑浠g爜銆傚鍚勭涓昏鐨勬暟鎹粨鏋勩佽緭鍑虹殑鍑芥暟銆佸涓嚱鏁板叕鐢ㄧ殑鍙橀噺榪涜璇︾粏鍦版敞閲娿傚浠g爜涓帶鍒剁粨鏋勶紝鍗曚竴鐩殑鐨勮鍙ラ泦榪涜娉ㄩ噴銆備笅闈㈡槸涓浜涘啓娉ㄩ噴鏃墮渶瑕佹敞鎰忕殑瑕佺偣錛?br style="line-height: normal; "> 閬垮厤瀵瑰崟鐙鍙ヨ繘琛屾敞閲婏紱 铏界劧浣跨敤鍚勭IDE鎴栬匰ource Insight 鍙互鏂逛究鍦板湪windows涓嬮槄璇誨拰鍒嗘瀽C/C++浠g爜錛屼絾鏄竴姝ユGo to Definetion 瀹炲湪浠や漢鐥涜嫤銆侱oxygen鑳藉鐢熸垚鍑芥暟璋冪敤鍏崇郴鍥撅紝鎵鏈夌殑鍑芥暟璋冪敤鍏崇郴鍙互涓鐩簡鐒訛紝鍙﹀浠栬繕鑳界粺璁℃枃妗d腑鎵鏈夌殑綾伙紝鎴愬憳鍙橀噺錛屾垚鍛樺嚱鏁扮瓑銆傛葷殑鏉ヨ錛孌oxygen涓嶄絾鑳戒粠灞閮ㄦ妸鎻′唬鐮侊紝榪樿兘浠庡叏灞瀹¤浠g爜錛屽悗鑰呮槸涓鑸琁DE鍜孲ource Insight 涓嶈兘鍋氬埌鐨勩傛墍浠ワ紝浣跨敤doxygen闃呰鍒嗘瀽浠g爜鍙互杈懼埌浜嬪崐鍔熷嶇殑鏁堟灉銆?/p> doxygen鐨勫畨瑁呭緢綆鍗曪紝鍒板畼鏂圭綉绔欎笅杞絛oxygen鐨剋indows瀹夎紼嬪簭鍗沖彲銆傞櫎浜嗗畨瑁卍oxygen澶栵紝榪橀渶瑕佸畨瑁単raphviz錛屽洜涓篸oxygen闇瑕佷嬌鐢╣raphviz鐨刣ot.exe鐢熸垚璋冪敤鍥俱俫raphviz鍦ㄥ畠鐨勫畼鏂圭綉绔欎笂涔熷彲浠ヤ笅杞藉埌瀹夎紼嬪簭銆備笉榪囨垜涓嬭澆鐨勫畨瑁呯▼搴忓湪瀹夎鏃惰佹槸鎶ab鏂囦歡閿欒銆傛渶鍚庢垜涓嬭澆浜唃raphviz鐨剅elease鏂囦歡錛屽嵆瀹夎紼嬪簭涓嬮潰鐨剒ip鍘嬬緝鏂囦歡錛屼笅杞藉畬鎴愬悗瑙e帇緙╁嵆鍙?/p> 瀹夎瀹宒oxygen鍚庡嵆鍙繘琛岄傚綋鐨勯厤緗紝鐒跺悗榪愯doxyfile鐢熸垚鏂囨。銆傚熀鏈殑閰嶇疆鍓嶄漢鏃╂湁璇存槑錛屼笉鍐嶈禈榪般傞渶瑕佹敞鎰忕殑鏄細 1.瑕佸嬀閫塂ot閫夐」鍗′笅闈㈢殑HAVE_DOT銆丆ALL_GRAPH 銆丆ALLER_GRAPH 閫夐」銆傚茍鍦―OT_PATH涓嬮潰濉叆dot.exe鐨勮礬寰勶紝涔熷氨鏄痝raphviz瀹夎鐩綍涓嬬殑bin鏂囦歡澶廣?/p> 2.鍕鵑塛izard->Project閫夐」鍗′笅闈㈢殑Scan recursively錛?/p> 3.鍕鵑塀uild閫夐」鍗′笅闈㈢殑EXTRACT_ALL銆丒XTRACT_PRIVATE銆丒XTRACT_STATIC銆丒XTRACT_LOCAL_CLASSES銆丒XTRACT_LOCAL_METHODS閫夐」 4.濡傛灉紼嬪簭閲岄潰鏈変腑鏂囷紝灝哖roject閫夐」鍗′笅鐨凞OXYFILE_ENCODING鍜孖nput閫夐」鍗′笅闈㈢殑INPUT_ENCODING鏀逛負GBK 5.鍙互鍕炬帀LATEX杈撳嚭錛岃繖鏍瘋妭鐪佺紪璇戞椂闂?/p> 5. 鍙傝冭祫鏂?br style="line-height: normal; ">1. doxygen homepage 2. doxygen manual 3. Code Complete: A Practical Handbook of Software Construction. Redmond, Wa.: Microsoft Press, 880 pages, 1993. ISBN: 1-55615-484-4. 6. 浣跨敤doxygen 浠g爜鍐欏浜嗛毦鍏嶉渶瑕佸仛鏂囨。錛岀粰鑷繁榪樻槸緇欏埆浜虹湅閮介渶瑕佸姝わ紝榪欐XBOX360鍒朵綔錛屽墠鏈熸病鎬庝箞鍐欐敞閲婏紝鍥炲ご鏀笲ug閮借鐚滃崐澶╄嚜宸卞啓鐨勪唬鐮佹槸浠涔堟剰鎬濄傛洿鍒彁鍒漢鍐欑殑涓滆タ錛?00琛屼唬鐮佷篃娌℃湁涓鍙ユ敞閲婏紝騫稿ソ涓嶆槸鎴戠淮鎶わ紝鍚﹀垯瑕佺柉鎺変簡銆?/p> 鑺變簡涓澶╁姛澶皾璇曚簡涓涓婦oxygen鐨勪嬌鐢紝榪樺ソ涓嶉毦錛屼絾鏄湁浜涚紓曠粖緇婏紝瀹冭嚜宸辯殑鏂囨。涔熻涓嶆竻妤氾紝緗戜笂鎼滃嚭鏉ョ殑鏁欑▼涔熷彧鏄粰鍑烘牱瀛愶紝閬囧埌鐨勯棶棰樿繕鏄潬鑷繁灝濊瘯浜嗗嚑鍗佹鎵嶆悶瀹氥?/p> 涓嶇濡備綍錛屽父鐢ㄧ殑涓滆タ閮藉彲浠ュ紕鍑烘潵浜嗐傝創鍦ㄤ笅闈細 ----------------------------------------------------------------------------------- 1.鎵鏈夋敞閲婇兘鍙互浣跨敤///寮濮?C++椋庢牸)銆?br>
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
int nAge;
strName="寮犱笁";
nAge=12;
::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");
Name=寮犱笁
::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
int nStudAge;
GetPrivateProfileString("StudentInfo","Name","榛樿濮撳悕",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\\stud\\student.ini");
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName
);
int i;
int nCount=6;
file://鍏辨湁6涓枃浠跺悕闇瑕佷繚瀛?br style="line-height: 23px; ">for(i=0;i<nCount;i++)
{
strTemp.Format("%d",i);
strTempA=鏂囦歡鍚?
//鏂囦歡鍚嶅彲浠ヤ粠鏁扮粍,鍒楄〃妗嗙瓑澶勫彇寰?
::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,"c:\\usefile\\usefile.ini");
}
strTemp.Format("%d",nCount);
::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");
//灝嗘枃浠舵繪暟鍐欏叆,浠ヤ究璇誨嚭.
for(i=0;i<nCount;i++)
{
strTemp.Format("%d",i);
strTemp="FileName"+strTemp;
::GetPrivateProfileString("CurrentIni",strTemp,"default.fil", strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\\usefile\\usefile.ini");
//浣跨敤strTempA涓殑鍐呭.
}
銆1.INI鏂囦歡鐨勮礬寰勫繀欏誨畬鏁?鏂囦歡鍚嶅墠闈㈢殑鍚勭駭鐩綍蹇呴』瀛樺湪,鍚﹀垯鍐欏叆涓嶆垚鍔?璇ュ嚱鏁拌繑鍥?FALSE 鍊?
銆2.鏂囦歡鍚嶇殑璺緞涓繀欏諱負 \\ ,鍥犱負鍦╒C++涓? \\ 鎵嶈〃紺轟竴涓?\ .
銆3.涔熷彲灝咺NI鏂囦歡鏀懼湪紼嬪簭鎵鍦ㄧ洰褰?姝ゆ椂 lpFileName 鍙傛暟涓? ".\\student.ini".
/*
綾誨悕錛欳Ini
鐗堟湰錛歷2.0
鍔犲叆楂樼駭鎿嶄綔鐨勫姛鑳?br style="line-height: 23px; ">v1.0
姊﹀皬瀛╀簬2003騫存煇鏃?br style="line-height: 23px; ">涓鑸搷浣滃畬鎴?/p>
鏈被鍙互浜?ini鏂囦歡榪涜鎿嶄綔
*/
#pragma once
#include "afxTempl.h"
{
private:
CString m_strFileName;
public:
CIni(CString strFileName):m_strFileName(strFileName)
{
}
public:
//涓鑸ф搷浣滐細
BOOL SetFileName(LPCTSTR lpFileName); //璁劇疆鏂囦歡鍚?br style="line-height: 23px; ">CString GetFileName(void); //鑾峰緱鏂囦歡鍚?br style="line-height: 23px; ">BOOL SetValue(LPCTSTR lpSection, LPCTSTR lpKey, LPCTSTR lpValue,bool bCreate=true); //璁劇疆閿鹼紝bCreate鏄寚孌靛悕鍙婇敭鍚嶆湭瀛樺湪鏃訛紝鏄惁鍒涘緩銆?br style="line-height: 23px; ">CString GetValue(LPCTSTR lpSection, LPCTSTR lpKey); //寰楀埌閿?
BOOL DelSection(LPCTSTR strSection); //鍒犻櫎孌靛悕
BOOL DelKey(LPCTSTR lpSection, LPCTSTR lpKey); //鍒犻櫎閿悕
//楂樼駭鎿嶄綔錛?br style="line-height: 23px; ">int GetSections(CStringArray& arrSection); //鏋氫婦鍑哄叏閮ㄧ殑孌靛悕
int GetKeyValues(CStringArray& arrKey,CStringArray& arrValue,LPCTSTR lpSection); //鏋氫婦鍑轟竴孌靛唴鐨勫叏閮ㄩ敭鍚嶅強鍊?/p>
#include "ini.h"
{
CFile file;
CFileStatus status;
if(!file.GetStatus(lpFileName,status))
return TRUE;
m_strFileName=lpFileName;
return FALSE;
}
{
return m_strFileName;
}
{
TCHAR lpTemp[MAX_PATH] ={0};
//!*&*none-value*&!* 榪欐槸涓瀮鍦懼瓧絎︽病鏈夌壒鍒剰涔夛紝榪欐牱涔卞啓鏄槻姝㈠噾宸х浉鍚屻?br style="line-height: 23px; ">if (!bCreate)
{
GetPrivateProfileString(lpSection,lpKey,"!*&*none-value*&!*",lpTemp,MAX_PATH,m_strFileName);
if(strcmp(lpTemp,"!*&*none-value*&!*")==0)
return TRUE;
}
return FALSE;
else
return GetLastError();
}
{
DWORD dValue;
TCHAR lpValue[MAX_PATH] ={0};
return lpValue;
}
{
if(WritePrivateProfileString(lpSection,NULL,NULL,m_strFileName))
return FALSE;
else
return GetLastError();
}
{
if(WritePrivateProfileString(lpSection,lpKey,NULL,m_strFileName))
return FALSE;
else
return GetLastError();
}
{
/*
鏈嚱鏁板熀紜錛?br style="line-height: 23px; ">GetPrivateProfileSectionNames - 浠?ini 鏂囦歡涓幏寰?Section 鐨勫悕縐?br style="line-height: 23px; ">濡傛灉 ini 涓湁涓や釜 Section: [sec1] 鍜?[sec2]錛屽垯榪斿洖鐨勬槸 'sec1',0,'sec2',0,0 錛屽綋浣犱笉鐭ラ亾
ini 涓湁鍝簺 section 鐨勬椂鍊欏彲浠ョ敤榪欎釜 api 鏉ヨ幏鍙栧悕縐?nbsp;
*/
int i;
int iPos=0;
int iMaxCount;
TCHAR chSectionNames[MAX_ALLSECTIONS]={0}; //鎬葷殑鎻愬嚭鏉ョ殑瀛楃涓?br style="line-height: 23px; ">TCHAR chSection[MAX_SECTION]={0}; //瀛樻斁涓涓鍚嶃?br style="line-height: 23px; ">GetPrivateProfileSectionNames(chSectionNames,MAX_ALLSECTIONS,m_strFileName);
for(i=0;i<MAX_ALLSECTIONS;i++)
{
if (chSectionNames[i]==0)
if (chSectionNames[i]==chSectionNames[i+1])
break;
}
{
chSection[iPos++]=chSectionNames[i];
if(chSectionNames[i]==0)
{
arrSection.Add(chSection);
memset(chSection,0,MAX_SECTION);
iPos=0;
}
}
}
{
/*
鏈嚱鏁板熀紜錛?br style="line-height: 23px; ">GetPrivateProfileSection- 浠?ini 鏂囦歡涓幏寰椾竴涓猄ection鐨勫叏閮ㄩ敭鍚嶅強鍊煎悕
濡傛灉ini涓湁涓涓錛屽叾涓嬫湁 "孌?=鍊?" "孌?=鍊?"錛屽垯榪斿洖鐨勬槸 '孌?=鍊?',0,'孌?=鍊?',0,0 錛屽綋浣犱笉鐭ラ亾
鑾峰緱涓涓涓殑鎵鏈夐敭鍙婂煎彲浠ョ敤榪欎釜銆?nbsp;
*/
int i;
int iPos=0;
CString strKeyValue;
int iMaxCount;
TCHAR chKeyNames[MAX_ALLKEYS]={0}; //鎬葷殑鎻愬嚭鏉ョ殑瀛楃涓?br style="line-height: 23px; ">TCHAR chKey[MAX_KEY]={0}; //鎻愬嚭鏉ョ殑涓涓敭鍚?/p>
{
if (chKeyNames[i]==0)
if (chKeyNames[i]==chKeyNames[i+1])
break;
}
{
chKey[iPos++]=chKeyNames[i];
if(chKeyNames[i]==0)
{
strKeyValue=chKey;
arrKey.Add(strKeyValue.Left(strKeyValue.Find("=")));
arrValue.Add(strKeyValue.Mid(strKeyValue.Find("=")+1));
memset(chKey,0,MAX_KEY);
iPos=0;
}
}
{
int nSection;
CStringArray arrSection;
nSection=GetSections(arrSection);
for(int i=0;i<nSection;i++)
{
if(DelSection(arrSection[i]))
return GetLastError();
}
return FALSE;
}
浣跨敤鏂規硶錛?br style="line-height: 23px; ">CIni ini("c:\\a.ini");
int n;
*/
ini.SetValue("鑷畾涔夋2","閿?","鍊?,false);
*/
CStringArray arrSection;
n=ini.GetSections(arrSection);
for(int i=0;i<n;i++)
TRACE("%s\n",arrSection[i]);
*/
n=ini.GetKeyValues(arrKey,arrValue,"孌?");
for(int i=0;i<n;i++)
TRACE("閿細%s\n鍊鹼細%s\n",arrKey[i],arrValue[i]);
*/
*/
*/
ini.DelAllSections();
*/
1.鍩虹鐭ヨ瘑
INI鏂囦歡錛圛nitialization file 錛屽張縐頒負鍒濆鍖栨枃浠訛級鏄敤鏉ヤ繚瀛樺簲鐢ㄧ▼搴忚緗拰閫夐」鐨勪竴縐嶇壒孌婄殑ASCII鏂囦歡錛屼互“.ini”浣滀負鏂囦歡鎵╁睍鍚嶏紝涔熻縐板仛閰嶇疆鏂囦歡鎴栨瑕佹枃浠訛紙Profile錛夈傞櫎浜嗗悇涓簲鐢ㄧ▼搴忓彲浠ユ嫢鏈夎嚜宸辯鏈夌殑鍒濆鍖栨枃浠跺錛學indows緋葷粺榪樻彁渚涙湁涓涓郴緇熺殑鍒濆鍖栨枃浠禬in.ini錛屽茍鐢辨瀵瑰綋鍓嶇殑Windows緋葷粺榪涜閰嶇疆錛屽悓鏃朵篃鍙互鍦ㄥ叾鍐呰褰曠郴緇熷唴鍏朵粬搴旂敤紼嬪簭鍦ㄨ繍琛屾椂鐨勯夐」銆?/p>
load=
run=
NullPort=None
[Desktop]
WallpaperStyle=2
Pattern=(鏃?
ENTRY=VALUE
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
INT nDefault, // 鍦ㄩ」鍚嶆病鏈夋壘鍒版椂榪斿洖鐨勭己鐪佸?br style="line-height: 23px; "> LPCTSTR lpFileName // 鍒濆鍖栨枃浠跺悕鍦板潃
);
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
LPCTSTR lpDefault, // 緙虹渷瀛楃涓?br style="line-height: 23px; "> LPTSTR lpReturnedString, // 瀛樻斁瀛楃涓茬殑緙撳啿鍖哄湴鍧
DWORD nSize, // 緙撳啿鍖哄ぇ灝?br style="line-height: 23px; "> LPCTSTR lpFileName // 鍒濆鍖栨枃浠跺悕鍦板潃
);
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
LPCTSTR lpString, // 瑕佸啓鍏ョ殑瀛楃涓插湴鍧
LPCTSTR lpFileName // 鍒濆鍖栨枃浠跺悕鍦板潃
);
銆銆縐佹湁鍒濆鍖栨枃浠朵富瑕佺敤鏉ヤ繚瀛樺悓搴旂敤紼嬪簭褰撳墠鐘舵佺浉鍏崇殑涓浜涗俊鎭紝褰撶▼搴忛鍑哄悗錛岃繖浜涗俊鎭敱浜庡凡鍐欏叆鍒板垵濮嬪寲鏂囦歡鑰屽緱浠ヤ繚鐣欙紝褰撶▼搴忓啀嬈¤繍琛屾椂錛屽彲浠ラ氳繃瀵規鍒濆鍖栨枃浠跺悇欏規暟鎹殑璇誨彇鑰屽緱鐭ユ搴旂敤紼嬪簭鍦ㄤ笂嬈¤繍琛屾湡闂寸殑鐩稿叧淇℃伅銆備笅闈㈣繖孌典唬鐮佸嵆閫氳繃瀵圭鏈夊垵濮嬪寲鏂囦歡鐨勮闂屽紼嬪簭鐨勮繍琛屾鏁板拰涓婁竴嬈$殑榪愯鏃ユ湡榪涜璁板綍錛?/p>
char buffer[255];
sPath = CString(buffer);
sPath = sPath.Left(sPath.ReverseFind('\\'));
UINT Time = GetPrivateProfileInt("PROGRAM", "RUNTIME", 0, sPath);
GetPrivateProfileString("DATE", "LAST", "2002-11-1", buffer, 1000, sPath);
sMsg.Format("鏈蔣浠跺叡榪愯榪?d嬈?涓婃榪愯鏃ユ湡涓?s", Time, CString(buffer));
AfxMessageBox(sMsg);
sTime.Format("%d", Time);
WritePrivateProfileString("PROGRAM", "RUNTIME", sTime, sPath);
sDate.Format("%d-%d-%d", tm.GetYear(), tm.GetMonth(), tm.GetDay());
WritePrivateProfileString("DATE", "LAST", sDate, sPath);
LAST =2002-11-12
[PROGRAM]
RUNTIME =1
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
INT nDefault // 鍦ㄩ」鍚嶆病鏈夋壘鍒版椂榪斿洖鐨勭己鐪佸?br style="line-height: 23px; ">);
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
LPCTSTR lpDefault, // 緙虹渷瀛楃涓插湴鍧
LPTSTR lpReturnedString, // 瀛樻斁瀛楃涓茬殑緙撳瓨鐨勫湴鍧
DWORD nSize // 緙撳瓨鐨勫ぇ灝?br style="line-height: 23px; ">);
LPCTSTR lpKeyName, // 欏瑰悕鍦板潃
LPCTSTR lpString // 瑕佸啓鍏ュ瓧絎︿覆鐨勫湴鍧
);
UINT Time = GetProfileInt("PROGRAM", "RUNTIME", 0);
GetProfileString("DATE", "LAST", "2002-11-1", buffer, 1000);
sMsg.Format("鏈蔣浠跺叡榪愯榪?d嬈?涓婃榪愯鏃ユ湡涓?s", Time, CString(buffer));
AfxMessageBox(sMsg);
sTime.Format("%d", Time);
WriteProfileString("PROGRAM", "RUNTIME", sTime);
sDate.Format("%d-%d-%d", tm.GetYear(), tm.GetMonth(), tm.GetDay());
WriteProfileString("DATE", "LAST", sDate);
]]>
@file RenderMgr.h
@brief 娓叉煋綆$悊綾?br style="line-height: normal; ">@date 3/16/2006
@author lethean
*/
/**
@brief 璇誨彇bmp鏂囦歡
@remarks 嫻嬭瘯涓涓?br style="line-height: normal; ">@param [in] dc 浼犲叆涓涓猟c鐢ㄤ簬涓存椂鎿嶄綔
@param [in] filename bmp鏂囦歡鍚?br style="line-height: normal; ">@note 灞忓箷dc鍙兘鍦ㄤ竴澶勮浣跨敤錛岃紜繚浼犲叆灞忓箷dc鍚庡叾浠栧湴鏂逛笉浼氭搷浣滆dc
@par 浠g爜紺轟緥:
@code
//浣跨敤
CDC* dc = AfxGetMainWindow()->GetDC();
Bitmap bmp( dc , "test.bmp");
AfxGetMainWindow()->ReleaseDC( dc );
@endcode
*/
enum ProtoId {
PROTOID_LOGIN, /**< 鐧婚檰鍗忚*/
PROTOID_BROWSE, /**< 嫻忚鍗忚*/
};
@defgroup Render Render娓叉煋妯″潡
@defgroup Resource Resource綆$悊妯″潡
@defgroup Sound Sound澹伴煶妯″潡
@defgroup Anim Anim鍔ㄧ敾妯″潡
@defgroup Math Math鏁板搴撴ā鍧?br style="line-height: normal; ">@defgroup Script Script鑴氭湰妯″潡
*/
涓轟唬鐮佸啓娉ㄩ噴涓鐩存槸澶у鏁扮▼搴忓憳鏈変簺鍥版壈鐨勪簨鎯呫傚綋鍓嶇▼搴忓憳閮借兘鎺ュ彈涓轟簡紼嬪簭鐨勫彲緇存姢鎬с佸彲璇繪х紪鐮佺殑鍚屾椂鍐欐敞閲婄殑璇存硶錛屼絾瀵瑰摢浜涘湴鏂瑰簲璇ュ啓娉ㄩ噴錛屾敞閲婂浣曞啓錛屽啓澶氬皯絳夎繖浜涢棶棰橈紝寰堝紼嬪簭鍛樹粛鐒舵病鏈夌瓟妗堛傛洿澶寸棝鐨勬槸鍐欐枃妗o紝浠ュ強緇存姢鏂囨。鐨勯棶棰橈紝寮鍙戜漢鍛橀氬父鍙互蹇嶅彈緙栧啓鎴栬呮敼鍔ㄤ唬鐮佹椂緙栧啓鎴栬呬慨鏀瑰搴旂殑娉ㄩ噴錛屼絾涔嬪悗闇瑕佷慨姝g浉搴旂殑鏂囨。鍗存瘮杈冨洶闅俱傚鏋滆兘浠庢敞閲婄洿鎺ヨ漿鍖栨垚鏂囨。錛屽寮鍙戜漢鍛樻棤鐤戞槸涓縐嶇闊熾傝宒oxygen灝辮兘鎶婇伒瀹堟煇縐嶆牸寮忕殑娉ㄩ噴鑷姩杞寲涓哄搴旂殑鏂囨。銆?/p>
鐢變簬鍙槸宸ュ叿鐨勪嬌鐢紝榪欓噷涓嶄粙緇嶅畠鐨勫師鐞嗭紝鐩存帴浠庝嬌鐢ㄦ楠ゅ紑濮嬨侱oxygen鐨勪嬌鐢ㄦ楠ら潪甯哥畝鍗曘備富瑕佸彲浠ュ垎涓猴細
1錛夌涓嬈′嬌鐢ㄩ渶瑕佸畨瑁卍oxygen鐨勭▼搴?br style="line-height: normal; ">2錛夌敓鎴恉oxygen閰嶇疆鏂囦歡
3錛夌紪鐮佹椂錛屾寜鐓ф煇縐嶆牸寮忕紪鍐欐敞閲?br style="line-height: normal; ">4錛夌敓鎴愬搴旀枃妗?br style="line-height: normal; ">doxygen鐨勫畨瑁呴潪甯哥畝鍗曪紝 linux涓嬪彲浠ョ洿鎺ヤ笅杞藉畨瑁呭寘榪愯鍗沖彲錛屼笅杞芥簮浠g爜緙栬瘧瀹夎涔熸槸姣旇緝閫氱敤鐨勭紪璇戝畨瑁呭懡浠ゃ傝鍙傝冨叾瀹夎鏂囨。瀹屾垚瀹夎銆?/p>
鍙互鏍規嵁欏圭洰鐨勫叿浣撻渶姹備慨鏀歸厤緗枃浠朵腑瀵瑰簲鐨勯」錛屽叿浣撶殑淇敼榪囩▼鍦ㄤ笅闈粙緇嶃備慨鏀硅繃鐨勯厤緗枃浠跺彲浠ヤ綔涓轟互鍚庨」鐩殑妯℃澘銆?/p>
doxygen閰嶇疆鏂囦歡鐨勬牸寮忔槸涔熸槸閫氬父鐨剈nix涓嬮厤緗枃浠剁殑鏍煎紡錛氭敞閲?#'寮濮嬶紱tag = value [,value2…]錛涘浜庡鍊肩殑鎯呭喌鍙互浣跨敤 tag += value [,value2…]銆?/p>
PROJECT_NAME 欏圭洰鍚嶇О
PROJECT_NUMBER 鍙互鐞嗚В涓虹増鏈俊鎭?br style="line-height: normal; ">OUTPUT_DIRECTORY 杈撳嚭鏂囦歡鍒扮殑鐩綍錛岀浉瀵圭洰褰曪紙doxygen榪愯鐩綍錛夋垨鑰呯粷瀵圭洰褰?br style="line-height: normal; ">INPUT 浠g爜鏂囦歡鎴栬呬唬鐮佹墍鍦ㄧ洰褰曪紝浣跨敤絀烘牸鍒嗗壊
FILE_PATTERNS *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++ *.idl *.odl 鎸囧畾INPUT鐨勭洰褰曚腑鐗瑰畾鏂囦歡錛屽錛?.cpp *.c *.h
RECURSIVE NO 鏄惁閫掑綊INPUT涓洰褰曠殑瀛愮洰褰?br style="line-height: normal; ">EXCLUDE 鍦↖NPUT鐩綍涓渶瑕佸拷鐣ョ殑瀛愮洰褰?br style="line-height: normal; ">EXCLUDE_PATTERNS 鏄庣‘鎸囧畾鐨勫湪INPUT鐩綍涓渶瑕佸拷鐣ョ殑鏂囦歡錛屽錛欶romOut*.cpp
OUTPUT_LANGUAGE English 鐢熸垚鏂囨。鐨勮璦錛屽綋鍓嶆敮鎸?銆?0縐嶈璦錛屽浗鍐呯敤鎴峰彲浠ヨ緗負Chinese
USE_WINDOWS_ENCODING YES錛坵in鐗堟湰錛?br style="line-height: normal; ">NO錛坲nix鐗堟湰錛?緙栫爜鏍煎紡錛岄粯璁ゅ嵆鍙?br style="line-height: normal; ">EXTRACT_ALL NO 涓篘O錛屽彧瑙i噴鏈塪oxygen鏍煎紡娉ㄩ噴鐨勪唬鐮侊紱涓篩ES錛岃В鏋愭墍鏈変唬鐮侊紝鍗充嬌娌℃湁娉ㄩ噴銆傜被鐨勭鏈夋垚鍛樺拰鎵鏈夌殑闈欐侀」鐢盓XTRACT_PRIVATE鍜?EXTRACT_STATIC鎺у埗
EXTRACT_PRIVATE NO 鏄惁瑙f瀽綾葷殑縐佹湁鎴愬憳
EXTRACT_STATIC NO 鏄惁瑙f瀽闈欐侀」
EXTRACT_LOCAL_CLASSES YES 鏄惁瑙f瀽婧愭枃浠訛紙cpp鏂囦歡錛変腑瀹氫箟鐨勭被
SOURCE_BROWSER NO 濡傛灉涓篩ES錛屾簮浠g爜鏂囦歡浼氳鍖呭惈鍦ㄦ枃妗d腑
INLINE_SOURCES NO 濡傛灉涓篩ES錛屽嚱鏁板拰綾葷殑瀹炵幇浠g爜琚寘鍚湪鏂囨。涓?br style="line-height: normal; ">ALPHABETICAL_INDEX NO 鐢熸垚涓涓瓧姣嶅簭鐨勫垪琛紝鏈夊緢澶氱被銆佺粨鏋勭瓑欏規椂寤鴻璁句負YES
GENERATE_HTML YES 鏄惁鐢熸垚HTML鏍煎紡鏂囨。
GENERATE_HTMLHELP NO 鏄惁鐢熸垚鍘嬬緝HTML鏍煎紡鏂囨。錛?chm錛?br style="line-height: normal; ">GENERATE_LATEX YES 鏄惁涔樿濺latex鏍煎紡鐨勬枃妗?br style="line-height: normal; ">GENERATE_RTF NO 鏄惁鐢熸垚RTF鏍煎紡鐨勬枃妗?br style="line-height: normal; ">GENERATE_MAN NO 鏄惁鐢熸垚man鏍煎紡鏂囨。
GENERATE_XML NO 鏄惁鐢熸垚XML鏍煎紡鏂囨。
3.1 娉ㄩ噴椋庢牸
涓嬮潰鏄伐浣滈噺鏈澶ч儴鍒嗭紝瀹夎doxygen鏍煎紡鍐欐敞閲娿傞氬父浠g爜鍙互闄勪笂涓涓敞閲婂潡鏉ュ浠g爜榪涜瑙i噴錛屼竴涓敞閲婂潡鐢變竴琛屾垨鑰呭琛岀粍鎴愩傞氬父涓涓敞閲婂潡鍖呮嫭涓涓畝瑕佽鏄庯紙brief錛夊拰涓涓緇嗚鏄庯紙detailed錛夛紝榪欎袱閮ㄥ垎閮芥槸鍙夌殑銆傚彲浠ユ湁澶氱鏂瑰紡鏍囪瘑鍑篸oxygen鍙瘑鍒殑娉ㄩ噴鍧椼?br style="line-height: normal; ">1錛塉avaDoc綾誨瀷鐨勫琛屾敞閲娿?br style="line-height: normal; ">/**
* ….text….
*/
2錛塓T鏍峰紡鐨勫琛屾敞閲娿?br style="line-height: normal; ">/*!
….text….
*/
3錛?/// …text….
4錛?//! …text….
綆瑕佽鏄庢湁澶氱鏂瑰紡鏍囪瘑錛岃繖閲屾帹鑽愪嬌鐢ˊbrief鍛戒護寮哄埗璇存槑錛屼緥濡傦細
/**
* @brief [some brief description ]
* [ brief description more. ]
*
* [some more detailed description…]
*/
浠ヤ笂榪欎簺娉ㄩ噴鏍煎紡鐢ㄦ潵瀵圭揣璺熷叾鍚庣殑浠g爜榪涜娉ㄩ噴銆俤oxygen涔熷厑璁告妸娉ㄩ噴鏀懼埌浠g爜鍚庨潰錛屽叿浣撴牸寮忔槸鏀句竴涓?<'鍒版敞閲婂紑濮嬮儴鍒嗐備緥濡傦細
int var1 ; /**< ….text…. */
int var2; ///< ….text….
閫氬父鐨勯夋嫨涓婇潰鐨勪竴銆佷袱縐嶆敞閲婇鏍鹼紝閬囧埌澶存枃浠朵腑鍚勭綾誨瀷瀹氫箟錛屽叧閿彉閲忋佸畯鐨勫畾涔夛紝鍦ㄥ叾鍓嶆垨鑰呭悗浣跨敤 @brief 瀹氫箟鍏剁畝瑕佽鏄庯紝絀轟竴琛屽悗緇х畫鍐欏叾璇︾粏鐨勬敞閲婂嵆鍙?/p>
*@brief func's brief comment.
*
* Some detailed comment.
*@param a [param a 's comment.]
*@param b [param b 's comment.]
*@exception std::out_of_range [exception's comment.]
*@return [return's comment.]
*/
int func1(int a, int b);
* detailed group description ]
* @{
*/
code
/** @} */
group涓殑浠g爜鍙互鏈夎嚜宸辯殑娉ㄩ噴銆傚崟綰畾涔変竴涓ā鍧楋紝鍘婚櫎{ 鍜寎鍛戒護鍗沖彲銆備換浣曞叾浠栦唬鐮侀」錛堟瘮濡傜被銆佸嚱鏁般佺敋鑷蟲枃浠訛級濡傛灉瑕佸姞鍏ュ埌鏌愪釜妯″潡錛屽彲浠ュ湪鍏禿oxygen娉ㄩ噴涓嬌鐢╥ngroup鍛戒護鍗沖彲銆侴roup涔嬮棿浣跨敤ingroup鍛戒護錛屽彲浠ョ粍鎴愭爲鐘跺叧緋匯?br style="line-height: normal; ">/** @file util.cpp
* @ingroup [group_name]
* @brief file's brief info.
*/
鎶婂涓唬鐮侀」涓璧鋒坊鍔犲埌鏌愪釜妯″潡涓彲浠ヤ嬌鐢╝ddtogroup鍛戒護錛屾牸寮忓拰defgroup鐩鎬技銆?/p>
//@{
/** Comments for all below code. */
code…
//@}
瀵硅繖縐嶇粍榪涜鍛藉悕鍙互浣跨敤name鍛戒護銆傛鏃朵腑闂翠唬鐮佸彲浠ユ湁鑷繁鐨勬敞閲娿傚錛?br style="line-height: normal; ">/** @name group_name
* description for group.
*/
//@{
code…
//@}
doxygen閫氳繃娉ㄩ噴鍛戒護璇嗗埆娉ㄩ噴涓渶瑕佺壒孌婂鐞嗙殑娉ㄩ噴錛屾瘮濡傚嚱鏁扮殑鍙傛暟銆佽繑鍥炲艱繘琛岀獊鍑烘樉紺恒備笂闈篃鎻愬埌浜嗕竴浜涙敞閲婂懡浠わ紙濡傦細brief銆乸aram銆乺eturn銆佷互鍙奼roup鐩稿叧鐨勫懡浠わ級錛屼笅闈㈠鍏朵粬涓浜涘父鐢ㄧ殑娉ㄩ噴鍛戒護榪涜瑙i噴璇存槑銆?br style="line-height: normal; ">@exception <exception-object> {exception description} 瀵逛竴涓紓甯稿璞¤繘琛屾敞閲娿?br style="line-height: normal; ">@warning {warning message } 涓浜涢渶瑕佹敞鎰忕殑浜嬫儏
@todo { things to be done } 瀵瑰皢瑕佸仛鐨勪簨鎯呰繘琛屾敞閲?br style="line-height: normal; ">@see {comment with reference to other items } 涓孌靛寘鍚叾浠栭儴鍒嗗紩鐢ㄧ殑娉ㄩ噴錛屼腑闂村寘鍚鍏朵粬浠g爜欏圭殑鍚嶇О錛岃嚜鍔ㄤ駭鐢熷鍏剁殑寮曠敤閾炬帴銆?br style="line-height: normal; ">@relates <name> 閫氬父鐢ㄥ仛鎶婇潪鎴愬憳鍑芥暟鐨勬敞閲婃枃妗e寘鍚湪綾葷殑璇存槑鏂囨。涓?br style="line-height: normal; ">@since {text} 閫氬父鐢ㄦ潵璇存槑浠庝粈涔堢増鏈佹椂闂村啓姝ら儴鍒嗕唬鐮併?br style="line-height: normal; ">@deprecated
@pre { description of the precondition } 鐢ㄦ潵璇存槑浠g爜欏圭殑鍓嶆彁鏉′歡銆?br style="line-height: normal; ">@post { description of the postcondition } 鐢ㄦ潵璇存槑浠g爜欏逛箣鍚庣殑浣跨敤鏉′歡銆?br style="line-height: normal; ">@code 鍦ㄦ敞閲婁腑寮濮嬭鏄庝竴孌典唬鐮侊紝鐩村埌@endcode鍛戒護銆?br style="line-height: normal; ">@endcode 娉ㄩ噴涓唬鐮佹鐨勭粨鏉熴?/p>
閫氳繃娉ㄩ噴瑙i噴涓轟粈涔堣繖涔堝仛銆佹垨鑰呰鍋氫粈涔堬紝浣夸唬鐮佺殑璇昏呭彲浠ュ彧闃呰娉ㄩ噴鐞嗚В浠g爜錛?br style="line-height: normal; "> 瀵硅鑰呭彲鑳戒細鏈夌枒闂殑鍦版柟榪涜娉ㄩ噴錛?br style="line-height: normal; "> 瀵規暟鎹畾涔夎繘琛屾敞閲婏紝鑰屼笉鏄鍏朵嬌鐢ㄨ繃紼嬭繘琛屾敞閲婏紱
瀵逛簬闅句簬鐞嗚В鐨勪唬鐮侊紝榪涜鏀瑰啓錛岃屼笉瑕佽瘯鍥鵑氳繃娉ㄩ噴鍔犱互璇存槑錛?br style="line-height: normal; "> 瀵瑰叧閿殑鎺у埗緇撴瀯榪涜娉ㄩ噴錛?br style="line-height: normal; "> 瀵規暟鎹拰鍑芥暟鐨勮竟鐣屻佷嬌鐢ㄥ墠鎻愮瓑榪涜娉ㄩ噴錛?/p>
http://www.stack.nl/~dimitri/doxygen/
http://www.stack.nl/~dimitri/doxygen/manual.html
4. 綆浠媎oxygen
http://www.stack.nl/~dimitri/doxygen/doxygen_intro_cn.html
5. 10 Minutes to document your code
http://www.codeproject.com/tips/doxysetup.asp
http://www.csdn.net/Develop/article/16%5C16383.shtm
]]>DOXYGEN綆鏄庡疄鐢ㄦ暀紼?/a>
Posted on 2009-03-04 21:31 媧葷潃灝辨槸騫哥 闃呰(507) 璇勮(0) 緙栬緫 鏀惰棌 鎵灞炲垎綾? Project Management
2.綾諱綋鍓嶅繀欏誨姞涓?//鎻忚堪錛屽惁鍒欎細浜х敓璀﹀憡銆怌ompound 綾誨悕 is not documented銆?br> 鎻忚堪涓渶濂戒笉瑕佸甫鏈夋綾葷殑綾誨悕錛屽惁鍒欎細浜х敓涓や釜閾炬帴(浣嗘寚鍚戝悓涓涓枃浠?褰卞搷緹庤銆?br>
3.public鍜宲rotected浼氳嚜鍔ㄧ敓鎴愶紝浣嗘槸private瑕佸湪Expert鐨凚uild閫夐」閲屽嬀涓璄XTRACT_PRIVATE錛宻tatic鎴愬憳涔熸槸濡傛銆?br>
4.鍑芥暟娉ㄩ噴鏂瑰紡
/// Constructor銆愬嚱鏁版弿榪般?br> /// @param [in] pos The position of Camera in world coordinate 銆愬弬鏁版弿榪?銆?br> /// @param [in] lookat The point Camera looks at in world coordinate 銆愬弬鏁版弿榪?銆?br> BaseCamera( const D3DXVECTOR3& pos, const D3DXVECTOR3& lookat );
5.鍙橀噺娉ㄩ噴鏂瑰紡
D3DXVECTOR3 m_Position; /*!< Camera position point in world coordinate */ 鎴?br> D3DXVECTOR3 m_Position; ///< Camera position point in world coordinate
涓ょ鏂瑰紡浜х敓鐨勭粨鏋滀笉鍚屻傚墠鑰呬細鍗曠嫭浜х敓涓鍧桵ember Data Documentation娉ㄩ噴錛屽悗鑰呬細鍦≒ubilc/Protected/Private Attributes鍙橀噺鎻忚堪鍚庣揣璺熸敞閲娿?br>
6.@鍙傛暟鍜孿鍙傛暟鐩稿悓
7.浜х敓鎻忚堪欏哄簭鍜屾敞閲婇『搴忕浉鍚岋紝涓鑸鏍間負
/// 鍑芥暟鎻忚堪
/// @param 鍙傛暟鎻忚堪
/// @return 榪斿洖鍊兼弿榪?br> /// @retval 榪斿洖鍊? 榪斿洖鍊?鎻忚堪
/// @retval 榪斿洖鍊? 榪斿洖鍊?鎻忚堪
/// @remarks 娉ㄦ剰浜嬮」
/// @note 娉ㄦ剰浜嬮」錛屽姛鑳藉悓@remarks,鏄劇ず瀛楁牱涓嶅悓
/// @par 鑷畾涔夊浘鍧楋紝鍚庨潰鍙窡紺轟緥浠g爜涔嬬被
/// @code(蹇呴』浣跨敤@endcode緇撴潫)
/// 紺轟緥浠g爜(鏃犻渶緙╄繘)
/// @endcode
/// @see 鍏朵粬鍙傝冮」銆愪駭鐢熸寚鍚戝弬鑰冪殑閾炬帴銆?br> 鍑芥暟浠g爜澹版槑
8.鐗規畩絎﹀彿
/// - 浜х敓涓涓粦鑹插渾鐐?br>
9.瀹氫箟鍦ㄧ被浣撻噷闈㈢殑enum
/// Camera types
enum CAMERA_TYPE
{
CAMERA_FIRST_VIEW,/*!< Camera that looks from the first view */
CAMERA_MODEL_VIEW,///< Camera that looks from the third view
};
涓ょ椋庢牸鐩稿悓銆?br>
浠ヤ笅寮濮嬬殑欏歸兘鏄叏灞闈炵被鍐呭畾涔夛紝鍦ㄦ枃浠舵渶寮濮?鎴戝皾璇曟槸鍦╥nclude涔嬪墠) 蹇呴』鍔犱笂銆?// \file 鏂囦歡鍚嶃戯紝鍚﹀垯涓嶄細鐢熸垚娉ㄩ噴銆愭病鏈塅ile Member欏點戙?br>
10. 瀹氫箟鍦ㄦ枃浠墮噷闈㈢殑瀹?br> #define CAMERA_TYPE_NUMBER ///< The number of camera types. 鎴?br> #define CAMERA_TYPE_NUMBER /*!< The number of camera types. */
椋庢牸璇存槑瑙?銆?br>
11. 闈炵被鍐卐num瀹氫箟鍚?0. 涓ょ椋庢牸鐩稿悓銆傝9銆?br>12. 闈炵被鍐卼ypedef瀹氫箟鍚?0. 椋庢牸璇存槑瑙?銆?/p>
]]>