锘??xml version="1.0" encoding="utf-8" standalone="yes"?>这里只有视频精品,国内精品视频久久,日韩视频在线一区二区三区http://www.shnenglu.com/daiybh/category/4842.html鎴戠殑錛屾垜鐨勶紝榪樻槸鎴戠殑錛侊紒zh-cnWed, 21 May 2008 23:33:51 GMTWed, 21 May 2008 23:33:51 GMT60杞竴涓猯og4cxx鐨勬暀紼?鍑哄涓嶆槑http://www.shnenglu.com/daiybh/archive/2008/01/25/41875.html浠f潕浠f潕Fri, 25 Jan 2008 03:31:00 GMThttp://www.shnenglu.com/daiybh/archive/2008/01/25/41875.htmlhttp://www.shnenglu.com/daiybh/comments/41875.htmlhttp://www.shnenglu.com/daiybh/archive/2008/01/25/41875.html#Feedback0http://www.shnenglu.com/daiybh/comments/commentRss/41875.htmlhttp://www.shnenglu.com/daiybh/services/trackbacks/41875.html
緇跨洘縐戞妧
2003 騫?9 鏈?

log4cpp鏄釜鍩轟簬LGPL鐨勫紑婧愰」鐩紝鏄熀浜庝紭縐鐨勬棩蹇楀鐞嗚窡韙」鐩甁ava璇█鐨刲og4j縐繪榪囨潵鐨勩俵og4j浠嬬粛鐨勬枃妗e緢澶氾紝鍦╦ava棰嗗煙浣跨敤鐨勪篃姣旇緝騫挎硾錛岃岃繖涓姛鑳藉己澶х殑搴撳鍥藉唴鐨凜++璇█寮鍙戜漢鍛樺嵈浣跨敤鐨勪笉澶氥傝繖閲屼粠寮鍙戜漢鍛樹嬌鐢ㄧ殑瑙掑害浠嬬粛榪欎釜搴擄紝浣垮紑鍙戜漢鍛樼敤鏈灝戠殑浠d環灝藉揩鎺屾彙榪欑鎶鏈備笅闈㈠厛綆鍗曚粙緇嶄竴涓嬭繖涓」鐩殑浼樼偣錛堜篃鏄痩og4j鐨勪紭鐐癸級錛岀劧鍚庡垎鍘熺悊錛屾墜鍔ㄤ嬌鐢ㄦ楠わ紝閰嶇疆鏂囦歡椹卞姩鏂瑰紡浣跨敤姝ラ錛屽叾浠栬冭檻絳夋柟闈㈣繘琛岃璁恒備互涓嬭璁哄熀浜巐og4cpp0.3.4b銆?/p>

0. 浼樼偣

鎻愪緵搴旂敤紼嬪簭榪愯涓婁笅鏂囷紝鏂逛究璺熻釜璋冭瘯錛?br/>鍙墿灞曠殑銆佸縐嶆柟寮忚褰曟棩蹇楋紝鍖呮嫭鍛戒護琛屻佹枃浠躲佸洖鍗鋒枃浠躲佸唴瀛樸乻yslog鏈嶅姟鍣ㄣ乄in浜嬩歡鏃ュ織絳夛紱
鍙互鍔ㄦ佹帶鍒舵棩蹇楄褰曠駭鍒紝鍦ㄦ晥鐜囧拰鍔熻兘涓繘琛岃皟鏁達紱
鎵鏈夐厤緗彲浠ラ氳繃閰嶇疆鏂囦歡榪涜鍔ㄦ佽皟鏁達紱
澶氳璦鏀寔錛屽寘鎷琂ava錛坙og4j錛夛紝C++錛坙og4cpp銆乴og4cplus錛夛紝C錛坙og4c錛夛紝python錛坙og4p錛夌瓑錛?br/>...

1. 鍘熺悊

log4cpp鏈?涓富瑕佺殑緇勪歡錛歝ategories錛堢被鍒級銆乤ppenders錛堥檮鍔犵洰鐨勫湴錛夈佸拰 layouts錛堝竷灞錛夈傦紙涓轟簡鏂逛究澶у鐞嗚В錛屾枃涓敖閲忎嬌鐢ㄨ嫳鏂囧師璇嶏級

layout綾繪帶鍒惰緭鍑烘棩蹇楁秷鎭殑鏄劇ず鏍峰紡錛堢湅璧鋒潵鍍忎粈涔堬級銆俵og4cpp褰撳墠鎻愪緵浠ヤ笅layout鏍煎紡錛?/p>

log4cpp::BasicLayout     // 浠?鏃墮棿鎴?浼樺厛綰э紙priority錛屼笅鏂囦粙緇嶏級
                        // 綾誨埆錛坈ategory錛屼笅鏂囦粙緇嶏級
     // NDC鏍囩錛坣ested diagnostic contexts 涓嬫枃浠嬬粛錛? 鏃ュ織淇℃伅"銆?              // 濡傦細1056638652 INFO main : This is some info
log4cpp::PatternLayout  // 璁╃敤鎴鋒牴鎹被浼間簬 C 璇█ printf 鍑芥暟鐨勮漿鎹㈡ā寮忔潵鎸囧畾杈撳嚭鏍煎紡銆傛牸寮忓畾涔夎浠g爜闄勫甫鏂囨。銆?log4cpp::SimpleLayout  // 浠?浼樺厛綰э紙priority錛?- 鏃ュ織淇℃伅"鏍煎紡鏄劇ず銆?

appender綾葷敤鏉ヨ緭鍑烘棩蹇楋紙琚玪ayout鏍煎紡鍖栧悗鐨勶級鍒頒竴浜涜澶囦笂銆傛瘮濡傛枃浠躲乻yslog鏈嶅姟銆佹煇涓猻ocket絳夈傚彲浠ュ畾涔夎嚜宸辯殑 appender綾昏緭鍑烘棩蹇椾俊鎭埌鍒殑璁懼涓婏紝姣斿搴旂敤鑷韓鐨勬棩瀛愬鐞嗚繘紼嬨佹暟鎹簱絳夈俛ppender鍜宭ayout鐨勫叧緋繪槸layout闄勫湪 appender涓婏紝appender綾昏皟鐢╨ayout澶勭悊瀹屾棩蹇楁秷鎭悗錛岃褰曞埌鏌愪釜璁懼涓娿俵og4cpp褰撳墠鎻愪緵浠ヤ笅appender錛?/p>

log4cpp::IdsaAppender    // 鍙戦佸埌IDS鎴栬卨ogger, 璇︾粏瑙?http://jade.cs.uct.ac.za/idsa/
log4cpp::FileAppender    // 杈撳嚭鍒版枃浠?log4cpp::RollingFileAppender  // 杈撳嚭鍒板洖鍗鋒枃浠訛紝鍗沖綋鏂囦歡鍒拌揪鏌愪釜澶у皬鍚庡洖鍗?log4cpp::OstreamAppender   // 杈撳嚭鍒頒竴涓猳stream綾?log4cpp::RemoteSyslogAppender  // 杈撳嚭鍒拌繙紼媠yslog鏈嶅姟鍣?log4cpp::StringQueueAppender  // 鍐呭瓨闃熷垪
log4cpp::SyslogAppender   // 鏈湴syslog
log4cpp::Win32DebugAppender  // 鍙戦佸埌緙虹渷緋葷粺璋冭瘯鍣?log4cpp::NTEventLogAppender  // 鍙戦佸埌win 浜嬩歡鏃ュ織

category 綾葷湡姝e畬鎴愯褰曟棩蹇楀姛鑳斤紝涓や釜涓昏緇勬垚閮ㄥ垎鏄痑ppenders鍜宲riority錛堜紭鍏堢駭錛夈備紭鍏堢駭鎺у埗鍝被鏃ュ織淇℃伅鍙互琚繖涓猚ategory璁板綍錛屽綋鍓嶄紭鍏堢駭鍒嗕負錛歂OTSET, DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT 鎴?FATAL/EMERG 銆傛瘡涓棩蹇椾俊鎭湁涓紭鍏堢駭錛屾瘡涓猚ategory鏈変釜浼樺厛綰э紝褰撴秷鎭殑浼樺厛綰уぇ浜庣瓑浜巆ategory鐨勪紭鍏堢駭鏃訛紝榪欎釜娑堟伅鎵嶄細琚玞ategory璁板綍錛屽惁鍒欒蹇界暐銆備紭鍏堢駭鐨勫叧緋誨涓嬨俢ategory綾誨拰appender鐨勫叧緋繪槸錛屽涓猘ppender闄勫湪category涓婏紝榪欐牱涓涓棩蹇楁秷鎭彲浠ュ悓鏃惰緭鍑哄埌澶氫釜璁懼涓娿?/p>

NOTSET < DEBUG < INFO < NOTICE < WARN < ERROR < CRIT < ALERT < FATAL = EMERG

category琚粍緇囨垚涓涓爲錛屽瓙category鍒涘緩鏃朵紭鍏堢駭緙虹渷NOTSET錛宑ategory緙虹渷浼氱戶鎵跨埗category鐨?appender銆傝屽鏋滀笉甯屾湜榪欑appender鐨勭戶鎵垮叧緋伙紝log4cpp鍏佽浣跨敤additivity 鏍囩錛屼負false鏃舵柊鐨刟ppender鍙栦唬category鐨刟ppender鍒楄〃銆?/p>

涓轟簡鏇村ソ鐨勭悊瑙d笂闈㈢殑姒傚康涓嬮潰浠ユ墜鍔ㄤ嬌鐢ㄦ柟寮忎婦渚嬨?/p>

2. 鎵嬪姩浣跨敤姝ラ

鎵嬪姩浣跨敤log4cpp鐨勫熀鏈楠ゅ涓嬶細

  1. 瀹炰緥鍖栦竴涓猯ayout 瀵硅薄錛?/li>
  2. 鍒濆鍖栦竴涓猘ppender 瀵硅薄錛?/li>
  3. 鎶妉ayout瀵硅薄闄勭潃鍦╝ppender瀵硅薄涓婏紱
  4. 璋冪敤log4cpp::Category::getInstance("name"). 瀹炰緥鍖栦竴涓猚ategory瀵硅薄錛?/li>
  5. 鎶奱ppender瀵硅薄闄勫埌category涓婏紙鏍規嵁additivity鐨勫煎彇浠e叾浠朼ppender鎴栬呴檮鍔犲湪鍏朵粬appender鍚庯級銆?/li>
  6. 璁劇疆category鐨勪紭鍏堢駭錛?/li>

// FileName: test_log4cpp1.cpp
// Test log4cpp by manual operation.
// Announce: use as your own risk.
// Compile : g++ -otest1 -llog4cpp test_log4cpp1.cpp
// Run     : ./test1
// Tested  : RedHat 7.2 log4cpp0.3.4b
// Author  : liqun (liqun@nsfocus.com)
// Data    : 2003-6-27

#include "log4cpp/Category.hh"
#include "log4cpp/FileAppender.hh"
#include "log4cpp/BasicLayout.hh"

int main(int argc, char* argv[])
{
        // 1瀹炰緥鍖栦竴涓猯ayout 瀵硅薄
        log4cpp::Layout* layout = 
        new log4cpp::BasicLayout();

        // 2. 鍒濆鍖栦竴涓猘ppender 瀵硅薄
 log4cpp::Appender* appender = new 
              log4cpp::FileAppender("FileAppender",
              "./test_log4cpp1.log");


 // 3. 鎶妉ayout瀵硅薄闄勭潃鍦╝ppender瀵硅薄涓? appender->setLayout(layout);

 // 4. 瀹炰緥鍖栦竴涓猚ategory瀵硅薄
 log4cpp::Category& warn_log = 
        log4cpp::Category::getInstance("mywarn");

 // 5. 璁劇疆additivity涓篺alse錛屾浛鎹㈠凡鏈夌殑appender
        warn_log.setAdditivity(false);

 // 5. 鎶奱ppender瀵硅薄闄勫埌category涓? warn_log.setAppender(appender);

 // 6. 璁劇疆category鐨勪紭鍏堢駭錛屼綆浜庢浼樺厛綰х殑鏃ュ織涓嶈璁板綍
 warn_log.setPriority(log4cpp::Priority::WARN);

 // 璁板綍涓浜涙棩蹇? warn_log.info("Program info which cannot be wirten");
 warn_log.debug("This debug message will fail to write");
 warn_log.alert("Alert info");

 // 鍏朵粬璁板綍鏃ュ織鏂瑰紡
 warn_log.log(log4cpp::Priority::WARN, "This will be a logged warning");
 log4cpp::Priority::PriorityLevel priority;
 bool this_is_critical = true;
 if(this_is_critical)
  priority = log4cpp::Priority::CRIT;
 else
  priority = log4cpp::Priority::DEBUG;
 warn_log.log(priority,"Importance depends on context");
 
 warn_log.critStream() << "This will show up << as " 
 << 1 << " critical message" 
 << log4cpp::CategoryStream::ENDLINE;

 // clean up and flush all appenders
 log4cpp::Category::shutdown();
 return 0;
}

3. 閰嶇疆鏂囦歡椹卞姩鏂瑰紡浣跨敤姝ラ

鍙︿竴涓潪甯鎬紭縐鐨勭壒寰佸氨鏄氳繃璇誨彇閰嶇疆鏂囦歡錛岀‘瀹歝ategory銆乤ppender銆乴ayout絳夊璞°備篃鏄垜浠潪甯告帹鑽愮殑浣跨敤鏂瑰紡錛屽彲浠ョ伒媧誨湴閫氳繃閰嶇疆鏂囦歡瀹氫箟鎵鏈夊湴瀵硅薄鍙婂叾灞炴э紝涓嶇敤閲嶆柊緙栫爜錛屽姩鎬佹洿鏀規棩蹇楄褰曠殑絳栫暐銆?/p>

Log4cpp涓昏鎻愪緵浜?log4cpp::PropertyConfigurator 鍜宭og4cpp::SimpleConfigurator涓ょ鏈哄埗錛堟枃浠舵牸寮忥級錛屼絾 log4cpp::SimpleConfigurator灝嗘潵涓嶅啀鏀寔浜嗭紝鑰屼笖鏍煎紡闈炲父綆鍗曪紝榪欓噷灝變笉澶氳鏄庯紝鑷繁鐪嬫簮鐮佸惂銆?/p>

閰嶇疆鏂囦歡鐨勬牸寮忓拰log4j鐨勯厤緗枃浠朵竴鏍鳳紝鏄爣鍑嗙殑java灞炴ф枃浠舵牸寮忋備笅闈㈡槸闄勫甫鐨勪緥瀛愰厤緗枃浠訛細


# a simple test config
#瀹氫箟浜?涓猚ategory sub1, sub2, sub1.sub2
log4j.rootCategory=DEBUG, rootAppender
log4j.category.sub1=,A1
log4j.category.sub2=INFO
log4j.category.sub1.sub2=ERROR, A2

# 璁劇疆sub1.sub2 鐨刟dditivity灞炴?log4j.additivity.sub1.sub2=false

#瀹氫箟rootAppender綾誨瀷鍜宭ayout灞炴?log4j.appender.rootAppender=org.apache.log4j.ConsoleAppender
log4j.appender.rootAppender.layout=org.apache.log4j.BasicLayout

#瀹氫箟A1鐨勫睘鎬?log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.fileName=A1.log
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

#瀹氫箟A2鐨勫睘鎬?log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=The message '%m' at time %d%n 

閰嶇疆鏂囦歡璇硶濡備笅錛屼笉鏄緢瑙勮寖錛岀粨鍚堜笂闈㈢殑渚嬪瓙錛屽簲璇ュ彲浠ョ湅鎳傘?/p>

  log4j / log4cpp . [category / appender].[category or appender 's name].[category or appender 's property] 
= [Appender / Layout / property's value / Priority, appender name1 [appender name2 ...]]

 [appender]
  {ConsoleAppender}
  {FileAppender} // 褰揳ppender鐨勭被鍨嬫槸FileAppender鏃訛紝鍙互瀹氫箟瀹冧笅闈㈢殑灞炴с?   [fileName] string foobar // 鏍煎紡鏄細灞炴у悕 鍊肩殑綾誨瀷 緙虹渷鍊?   [append] bool true
  {RollingFileAppender}
   [fileName]  string foobar
   [maxFileSize] num 10*1024*1024
   [maxBackupIndex] num 1
   [append] bool true
  {SyslogAppender}
   [syslogName] string syslog
   [syslogHost] string localhost
   [facility] num -1 // * 8 to get LOG_KERN, etc. compatible values. 
   [portNumber] num -1
  {IdsaAppender}
   [idsaName] string foobar
  {Win32DebugAppender}
  {NTEventLogAppender}
   [source] string foobar
   
   [threshold] string "" // 鍏ㄩ儴 
   // 濡傛灉姝ょ被鍨媋ppender闇瑕乴ayout錛屽繀欏誨畾涔夋appender鐨勪笅闈㈠睘鎬?   [layout]
    {BasicLayout} 
    {SimpleLayout}
    {PatternLayout}  // 褰搇ayout鐨勫兼槸BasicLayout鏃訛紝闇瑕佸畾涔変笅闈㈢殑灞炴с?     [ConversionPattern]
     
 [rootCategory]
 [additivity]
  [category name] bool true
  

鍩烘湰浣跨敤姝ラ鏄細

  1. 璇誨彇瑙f瀽閰嶇疆鏂囦歡錛?/li>
  2. 瀹炰緥鍖朿ategory瀵硅薄錛?/li>
  3. 姝e父浣跨敤榪欎簺category瀵硅薄榪涜鏃ュ織澶勭悊錛?/li>

涓嬮潰鏄釜綆鍗曠殑浣跨敤浠g爜錛屼嬌鐢ㄨ搗鏉ユ槸闈炲父鏂逛究鐨勶細


// FileName: test_log4cpp2.cpp
// Test log4cpp by config file.
// Announce: use as your own risk.
// Compile : g++ -llog4cpp test_log4cpp2.cpp
// Run     : ./a.out
// Tested  : RedHat 7.2 log4cpp0.3.4b
// Author  : liqun (liqun@nsfocus.com)
// Data    : 2003-6-27

#include "log4cpp/Category.hh"
#include "log4cpp/PropertyConfigurator.hh"

int main(int argc, char* argv[])
{
 // 1 璇誨彇瑙f瀽閰嶇疆鏂囦歡
 // 璇誨彇鍑洪敊, 瀹屽叏鍙互蹇界暐錛屽彲浠ュ畾涔変竴涓己鐪佺瓥鐣ユ垨鑰呬嬌鐢ㄧ郴緇熺己鐪佺瓥鐣? // BasicLayout杈撳嚭鎵鏈変紭鍏堢駭鏃ュ織鍒癈onsoleAppender
    try { 
  log4cpp::PropertyConfigurator::configure("./log4cpp.conf");
 } catch(log4cpp::ConfigureFailure& f) {
  std::cout << "Configure Problem " << f.what() << std::endl;
        return -1;
    }
 
 // 2 瀹炰緥鍖朿ategory瀵硅薄
 // 榪欎簺瀵硅薄鍗充嬌閰嶇疆鏂囦歡娌℃湁瀹氫箟涔熷彲浠ヤ嬌鐢紝涓嶈繃鍏跺睘鎬х戶鎵垮叾鐖禼ategory
 // 閫氬父浣跨敤寮曠敤鍙兘涓嶅お鏂逛究錛屽彲浠ヤ嬌鐢ㄦ寚閽堬紝浠ュ悗鍋氭寚閽堜嬌鐢? // log4cpp::Category* root = &log4cpp::Category::getRoot();
    log4cpp::Category& root = log4cpp::Category::getRoot();
 
    log4cpp::Category& sub1 = 
        log4cpp::Category::getInstance(std::string("sub1"));

    log4cpp::Category& sub3 = 
        log4cpp::Category::getInstance(std::string("sub1.sub2"));

 // 3 姝e父浣跨敤榪欎簺category瀵硅薄榪涜鏃ュ織澶勭悊銆? // sub1 has appender A1 and rootappender.
 sub1.info("This is some info");
 sub1.alert("A warning");
 
 // sub3 only have A2 appender.
 sub3.debug("This debug message will fail to write");
 sub3.alert("All hands abandon ship");
 sub3.critStream() << "This will show up << as " << 1 << " critical message" 
 << log4cpp::CategoryStream::ENDLINE;
 sub3 << log4cpp::Priority::ERROR 
              << "And this will be an error"  
              << log4cpp::CategoryStream::ENDLINE;
 sub3.log(log4cpp::Priority::WARN, "This will be a logged warning");
 
 return 0;
}

4. 鐩稿叧鑰冭檻

鎬ц兘闂錛屽彲鑳芥槸寰堝鎯充嬌鐢╨og4cpp鐨勭▼搴忓憳鍏沖績鐨勯棶棰樸傚湪鍙傝冭祫鏂?涓湁涓孌墊弿榪般傜粨璁哄氨鏄痩og4j浠ュ強log4cpp鏄互鎬ц兘涓洪瑕佺洰鏍囩殑錛涘鏋滃叧闂棩蹇楄褰曠殑璇濓紝瀵規ц兘褰卞搷鍙互蹇界暐錛涙墦寮鏃ュ織璁板綍錛屼富瑕佹秷鑰楁槸鍦ㄨ褰曞姩浣滐紝鑰屼笉鏄簱鐨勭鐞嗚繃紼嬶紱鎵浠ヤ綘灝藉彲鏀懼績鐨勪嬌鐢ㄣ傚疄鍦ㄨ娣辯┒鎬ц兘鐨勮瘽銆傚彲浠ヤ粠涓嬮潰鏂歸潰鎻愰珮錛?/p>

杈撳嚭鐨勬棩蹇楁秷鎭笉瑕佷嬌鐢ㄥ鏉傜殑杞崲鎴栬呭鐞嗭紝姣斿錛?sub1.debug(string("Current num is") + i + GetCurStat()); 榪欑鎯呭喌鍗充嬌涓嶈繘琛屾棩蹇楀鐞嗭紝鎷彿涓殑璇彞榪樻槸浼氭墽琛屻傚彉閫氭柟娉曟槸錛?/p>

if(sub1.isDebugEnabled())
{
 sub1.debug(string("Current num is") + i + GetCurStat());
}

瀹夊叏鎬ч棶棰樺浜庡晢涓氳蔣浠跺紑鍙戝彲鑳戒篃鏄棶棰樸傚彲鑳戒笉甯屾湜鍒漢閫氳繃淇敼閰嶇疆鏂囦歡鑾峰彇紼嬪簭鐨勮皟璇曠瓑紼嬪簭鍐呴儴榪愯鎯呭喌鐨勬棩蹇椾俊鎭傛瘮杈冪ǔ濡ョ殑鏂規鎴栬呮槸鍔犲瘑閰嶇疆鏂囦歡錛岃繍琛屼腑瑙e瘑錛岃緭鍑哄埌涓存椂鏂囦歡鍚庤鍙栵紱鎴栬呭湪鍙戣鐗堟湰閲岃鍙栭厤緗枃浠跺悗錛屽己琛屾妸浣庝簬鏌愪釜浼樺厛綰х殑category璁懼埌姣旇緝楂樼殑浼樺厛綰с?/p>

澶氱嚎紼嬪畨鍏ㄦч棶棰樸傚綋鍓峫og4cpp榪樻病鏈夊縐拌嚜宸辨槸澶氱嚎紼嬪畨鍏ㄧ殑錛屼笉榪囧叾浠g爜涓ぇ澶氭暟鍙兘鍐茬獊鐨勫湴鏂歸兘澧炲姞浜嗙嚎紼嬩簰鏂ユ帶鍒訛紝瀵瑰綰跨▼鐜搴旇闂涓嶅ぇ銆備絾涓轟簡鍔犲叆榪欎釜鐗規э紝linux涓嬬紪璇憀og4cpp鏃訛紝configure璇峰姞鍏?-with-pthreads 鎴栬?-with-omnithreads閫夐」銆俉in鐗堟湰宸茬粡鍔犲叆瀵筂S綰跨▼鐨勬敮鎸併?/p>

5. 鍙傝冭祫鏂?/span>

1. Logging and Tracing in C++ Simplified: Traveling the Road Last Traveled by a Previously Invented Wheel
http://soldc.sun.com/articles/logging.html

2. log4j 鎻愪緵浜嗗鏃ュ織璁板綍鐨勬帶鍒?br/>http://www-900.ibm.com/developerWorks/cn/java/jw-log4j/index.shtml

3. 浣跨敤Log4j榪涜鏃ュ織鎿嶄綔
http://www-900.ibm.com/developerWorks/cn/java/l-log4j/index.shtml

4. log4cpp涓婚〉
http://sourceforge.net/projects/log4cpp/

5. log4j涓婚〉
http://jakarta.apache.org/log4j/docs/index.html

6. log4cplus涓婚〉
http://log4cplus.sourceforge.net/

7. log4c涓婚〉
http://log4c.sourceforge.net/

6. 鍏充簬浣滆?/span>

鏉庣兢錛屽叧娉ㄤ簬緗戠粶瀹夊叏浜у搧鐨勫紑鍙戙佺爺絀訛紱杞歡寮鍙戣繃紼嬬瓑鏂歸潰銆傛偍鍙互閫氳繃liqun@nsfocus.com鍜屼粬鑱旂郴銆?/p>

浠f潕 2008-01-25 11:31 鍙戣〃璇勮
]]>
涓涓┖綾葷紪璇戝櫒鑷姩緇欏叾娣誨姞鐨勫嚱鏁版湁鍝嚑涓?/title><link>http://www.shnenglu.com/daiybh/archive/2007/12/25/39546.html</link><dc:creator>浠f潕</dc:creator><author>浠f潕</author><pubDate>Tue, 25 Dec 2007 01:11:00 GMT</pubDate><guid>http://www.shnenglu.com/daiybh/archive/2007/12/25/39546.html</guid><wfw:comment>http://www.shnenglu.com/daiybh/comments/39546.html</wfw:comment><comments>http://www.shnenglu.com/daiybh/archive/2007/12/25/39546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/daiybh/comments/commentRss/39546.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/daiybh/services/trackbacks/39546.html</trackback:ping><description><![CDATA[ <p><br/>涓涓┖綾葷紪璇戝櫒鑷姩緇欏叾娣誨姞鐨勫嚱鏁版湁鍝嚑涓?</p> <p><!--more--></p> <p>class Empty<br/>{<br/>public:<br/>Empty(); // 緙虹渷鏋勯犲嚱鏁?br/>Empty( const Empty& ); // 鎷瘋礉鏋勯犲嚱鏁?br/>~Empty(); // 鏋愭瀯鍑芥暟<br/>Empty& operator=( const Empty& ); // 璧嬪艱繍綆楃<br/>Empty* operator&(); // 鍙栧潃榪愮畻絎?br/>const Empty* operator&() const; // 鍙栧潃榪愮畻絎?const<br/>};</p> <img src ="http://www.shnenglu.com/daiybh/aggbug/39546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/daiybh/" target="_blank">浠f潕</a> 2007-12-25 09:11 <a href="http://www.shnenglu.com/daiybh/archive/2007/12/25/39546.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍔ㄦ佽皟鐢╠ll涓殑瀵煎嚭綾?/title><link>http://www.shnenglu.com/daiybh/archive/2007/10/11/33935.html</link><dc:creator>浠f潕</dc:creator><author>浠f潕</author><pubDate>Thu, 11 Oct 2007 03:49:00 GMT</pubDate><guid>http://www.shnenglu.com/daiybh/archive/2007/10/11/33935.html</guid><wfw:comment>http://www.shnenglu.com/daiybh/comments/33935.html</wfw:comment><comments>http://www.shnenglu.com/daiybh/archive/2007/10/11/33935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/daiybh/comments/commentRss/33935.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/daiybh/services/trackbacks/33935.html</trackback:ping><description><![CDATA[ <p>鎴戜滑鐭ラ亾鍔ㄦ佸姞杞絛ll涓殑鍑芥暟鏄敤:<br/>LoadLibrary鍜孏etProcAddress絳夊嚱鏁?<br/>浣嗘槸濡備綍鍔ㄦ佸姞杞絛ll涓殑瀵煎嚭綾誨憿?<br/>鎴戝鉤鏃跺彧鑳界敤闈欐佽繛鎺ョ殑鏂瑰紡h+lib</p> <p>鍦ㄧ綉涓婃壘鍒扮殑瑙e喅鏂規硶錛?a >http://www.codeguru.com/cpp/w-p/dll/importexportissues/article.php/c123/</a></p> <br/><img src ="http://www.shnenglu.com/daiybh/aggbug/33935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/daiybh/" target="_blank">浠f潕</a> 2007-10-11 11:49 <a href="http://www.shnenglu.com/daiybh/archive/2007/10/11/33935.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞 cpp 寮鍙戝父鐢ㄥ伐鍏瘋崯钀?/title><link>http://www.shnenglu.com/daiybh/archive/2007/09/26/32902.html</link><dc:creator>浠f潕</dc:creator><author>浠f潕</author><pubDate>Wed, 26 Sep 2007 06:17:00 GMT</pubDate><guid>http://www.shnenglu.com/daiybh/archive/2007/09/26/32902.html</guid><wfw:comment>http://www.shnenglu.com/daiybh/comments/32902.html</wfw:comment><comments>http://www.shnenglu.com/daiybh/archive/2007/09/26/32902.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/daiybh/comments/commentRss/32902.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/daiybh/services/trackbacks/32902.html</trackback:ping><description><![CDATA[ <p><span style="FONT-SIZE: 9pt"><strong>寮鍙戠幆澧?/strong><br/><br/>銆銆----錛濼urbo c</span></p> <p>銆銆DOS鏃朵唬c璇█寮鍙戠殑<a href="javascript:;" target="_self" onclick="javascript:tagshow(event, '%BE%AD%B5%E4');"><span style="TEXT-DECORATION: underline"><strong>緇忓吀</strong></span></a>宸ュ叿錛岀洰鍓嶉傚悎涓ょ被浜轟嬌鐢細c璇█beginner錛堝挨鍏舵槸瀛︾敓涓鏃忥級錛屽叿鏈夋鏃ф儏鑺傜殑涓撲笟浜哄+錛氾級</p> <p>銆銆----錛濾isual C++ 6.0/7.0</p> <p>銆銆紼沖畾鑰屽己澶х殑IDE寮鍙戠幆澧冿紝鍏鋒湁涓板瘜鐨勮皟璇曞姛鑳斤紝瀹氬埗瀹忕殑鍔熻兘涔熸槸鍏朵竴澶х壒鑹層侻icrosoft鐨勭粡鍏鎬箣浣滐紝鍔熻兘寮哄ぇ鑷笉蹇呰█璇淬傞檮甯︾殑涓浜涘伐鍏蜂篃寰堜笉閿欙紝姣斿錛歋py++銆備絾緙栬瘧鍣ㄨ緝涔嬪悓綾伙紝鏀寔c++鏍囧噯鐨勭▼搴︿笉澶熷ソ錛屽挨鍏?.0鍙婁互鍓嶇殑鐗堟湰銆?/p> <p>銆銆----錛濨CB</p> <p>銆銆Borland鐨凜++ Builder鏄彲浠ヤ笌VC鍖規晫鐨勫彟涓涓姛鑳藉己澶х殑IDE錛岄熷害鍜岀ǔ瀹氭х◢閫婏紝浣嗗c++鏍囧噯鏀寔鐨勭▼搴﹁緝濂姐?/p> <p><br/>銆銆----錛濩ygwin</p> <p>銆銆Windows騫沖彴涓嬬殑C++緙栬瘧鍣紝鍩轟簬gcc錛屽張瀹屽叏鍏煎Window鐗規湁鐨勪笢瑗匡紝姣斿瀵箇insock鐨勬敮鎸併備粠<span style="COLOR: #4c408c">http://www.cygwin.com</span>鍙互鎵懼埌鏈夊叧Cygwin鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濪ev-c++</p> <p>銆銆Windows騫沖彴涓嬶紝涓涓被浼糣C銆丅CB鐨刢++ IDE寮鍙戠幆澧冿紝灞炰簬鍏變韓杞歡銆傜晫闈翰鍒囦紭闆咃紝size涔熶笉澶э紝鍏?.9.x鐗堟湁涓枃璇█鏀寔錛屾棤闇姹夊寲銆傜紪璇戝櫒鍩轟簬gcc錛屽畬鍏ㄦ敮鎸丼TL銆備絾鏄浜庤妯¤緝澶х殑杞歡欏圭洰錛屾亹鎬曢毦浠ヨ儨浠匯傚彲浠ヤ粠:http://www.bloodshed.net/dev/devcpp.html鎵懼埌鏈夊叧Dev-c++鐨勬湁鍏充俊鎭?/p> <p>銆銆----錛濻ource Insight</p> <p>銆銆鏈夌潃鍜孌ev c++涓鏍鋒紓浜殑鐣岄潰錛屾彁渚涗唬鐮佺殑緙栬緫鍜屽療鐪嬪姛鑳斤紝鍏鋒湁涓板瘜鐨勮娉曞姞浜姛鑳斤紝鍙互鍍廣C涓鏍瘋嚜鍔ㄥ脊鍑烘垚鍛樺嚱鏁扮殑鎻愮ず錛屽茍鍏鋒湁蹇熸柟渚跨殑鍑芥暟璺寵漿鍔熻兘錛堜絾鏄煩杞熷害浼間箮鏈夌偣鎱級銆傚彧鏄粯璁よ緗笉閫傚悎鏃訛紝闇瑕佷粩緇嗙殑璋冩暣鍜屼慨鏀廣傛棤娉曟煡鎵劇粡typedef涔嬪悗鐨勫悕瀛椼?/p> <p>銆銆<strong>杈呭姪宸ュ叿</strong></p> <p>銆銆----錛濾isual Assist</p> <p>銆銆VC IDE鐜涓嬬殑杈呭姪緙栫▼宸ュ叿錛岃兘璇嗗埆鍚勭鍏抽敭瀛椼佸嚱鏁般佹垚鍛樺彉閲忥紝鑷姩緇欏嚭tip錛屽茍鑷姩鏇存澶у皬鍐欓敊璇紝鏍囩ず鎷煎啓閿欒絳夈傛槸VC寮鍙戠殑鑹ソ浼翠荊銆?/p> <p>銆銆----錛濽nderstand for C++</p> <p>銆銆涓嬈綾/c++IDE緙栫▼鐨勮緟鍔╁伐鍏鳳紝鏀寔鍙嶅悜宸ョ▼錛屼唬鐮佸鍚戝拰涓浜涚粺璁″姛鑳斤紝浠?span style="COLOR: #4c408c">http://www.scitools.com</span>鍙互鎵懼埌鏈夊叧Understand for C++鐨勮緇嗕俊鎭?/p> <p>銆銆<strong>紼嬪簭緙栬緫鍣?/strong></p> <p>銆銆----錛濫ditPlus</p> <p>銆銆涓嬈懼緢涓嶉敊鐨勬枃鏈紪杈戣蔣浠訛紝鍔熻兘寮哄ぇ鍗村張鍗佸垎杞誨閥銆傛敮鎸佷笉鍚岃璦鐨勮娉曞姞浜紝榪樻湁Project緇勭粐鍔熻兘錛屽叿鏈変赴瀵岀殑鑷畾涔夊姛鑳姐傞氳繃璁劇疆User Tool錛屽彲浠ュ拰鍏朵粬璇█緙栬瘧鍣ㄧ粨鍚堬紝褰㈡垚涓涓畝鍗曠殑IDE銆?/p> <p>銆銆----錛濽ltra Edit</p> <p>銆銆鍔熻兘鍜孍ditPlus鐩稿綋錛岄氳繃鑴氭湰鏂囦歡鎻愪緵鐨勯厤緗姛鑳藉彲浠ュ畾鍒剁紪杈戠幆澧冿紝浣嗚嚜6.0鐗堜互鍚庝竴鐩存病澶氬ぇ鍙樺寲錛屽氨緙栫▼鑰岃█錛岃嚜瀹氫箟璁劇疆娌℃湁EditPlus鏂逛究銆?/p> <p>銆銆----錛濫MACS</p> <p>銆銆鍏鐨勪笘鐣屼笂鍔熻兘鏈澶氾紝鏈澶嶆潅鐨勬枃鏈紪杈戝櫒錛屽叾瀹炰篃鍙互褰撲綔紼嬪簭鍛樼敤鐨勭紪杈戝櫒銆?/p> <p>銆銆----錛濾isual Slick Edit</p> <p>銆銆涓涓姛鑳藉己澶х殑紼嬪簭鍛樼敤緙栬緫鍣ㄣ傛渶鍊煎緱涓鎻愮殑鏄叾瀹氬埗鍔熻兘錛屽緢濂界敤錛屽彲浠ュ拰EMACS鐩告瘮銆傝嚜甯︿簡涓濂桺CODE瑙i噴鍣紝鐢╟鐨勮娉曪紝榪樺彲浠ユ寕鎺ュ姩鎬佸簱銆傞厤鍚坢ingw涓璧蜂嬌鐢ㄥ緢鏂逛究銆備粠<span style="COLOR: #4c408c">http://www.slickedit.com</span>鍙互鎵懼埌鏈夊叧SlickEdit鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濱QEdit</p> <p>銆銆鍏ㄥ姛鑳界殑紼嬪簭鍛樼敤緙栬緫鍣紝鐣岄潰寰堟紓浜紝浠?span style="COLOR: #4c408c">http://pwksoftware.com</span>鍙互鎵懼埌鏈夊叧IQEdit鐨勮緇嗕俊鎭?/p> <p>銆銆<strong>UML/寤烘ā</strong></p> <p>銆銆----錛濺ational Rose</p> <p>銆銆寮哄ぇ鐨勫緩妯″伐鍏鳳紝鏃╁凡"瀹跺柣鎴鋒檽"錛屽姛榪囪嚜鐒朵笉蹇呭鍔犺瘎璇翠簡銆備粠<span style="COLOR: #4c408c">http://www.rationalsoftware.com.cn</span>鍙互鎵懼埌鏈夊叧Rational Rose鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濾isual Modeler</p> <p>MS Visual Studio 6.0鎵闄勭殑灝忓伐鍏楓傚睘浜嶳ational鍜孧icroSoft鍚堜綔鐨勬垬鐣?a href="javascript:;" target="_self" onclick="javascript:tagshow(event, '%B2%FA%C6%B7');"><span style="TEXT-DECORATION: underline"><strong>浜у搧</strong></span></a>錛屾槸Rose鐨勭畝鍖栫増銆?br/>----錛濾isio</p> <p>銆銆Microsoft鐨勫緩妯″伐鍏鳳紝鎰熻鏇翠漢鎬у寲涓浜涳紝浣嗗姛鑳芥病鏈塕ose澶氥佸己銆佷笓錛屾敮鎸佹鍚戠殑浠g爜鐢熸垚錛屼互鍙婂浠g爜鐨勫弽鍚戝伐紼嬨?/p> <p>銆銆----錛濼ogether</p> <p>銆銆鍙︿竴嬈懼姛鑳藉己澶х殑寤烘ā宸ュ叿錛岀敤java緙栧啓鑰屾垚錛屽彛紕戜笉閿欙紝涓嶈繃閫熷害紼嶇◢鎱簡涓浜涖備粠<span style="COLOR: #4c408c">http://www.togethersoft.com</span>鍙互鎵懼埌鏈夊叧Togather鐨勮緇嗕俊鎭紝鍙﹀錛屼互涓嬬綉鍧鎻愪緵浜嗕竴涓湁鍏砊ogether鐨勬暀紼嬶細 銆銆銆<span style="COLOR: #4c408c">http://www.cc.puv.fi/~tka/kurssit/Tietojarjestelmien_suunnittelu</span></p> <p><span style="COLOR: #4c408c"><span style="TEXT-DECORATION: underline">/together/TCCGuide6</span></span></p> <p>銆銆----錛濾isual UML</p> <p>銆銆鏀寔澶氱璇█綾誨瀷錛屾瘮濡傦細VC銆乂B銆丏ELPHI銆丆ORBA IDL絳夛紝鍙互鐩存帴浠嶶ML璁捐鍥劇敓鎴愪唬鐮侊紝綆鍗曟槗鐢紝瀹屽叏閫傚悎Personal use錛岀晫闈篃寰堟竻鐖姐備粠<span style="COLOR: #4c408c">http://www.visualObject.com</span>鍙互鎵懼埌鏈夊叧Visual UML鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濻martDraw</p> <p>銆銆閫氱敤鍥捐〃鍒朵綔杞歡錛屽彲浠ョ敤鏉ュ埗浣滅粍緇囨満鏋勫浘銆佹祦紼嬪浘銆佺粺璁″浘琛ㄧ瓑銆傞殢甯︽湁鍥懼簱錛屽熀鏈弧瓚沖埗浣滃悇綾誨浘琛ㄧ殑闇瑕併備粠<span style="COLOR: #4c408c">http://www.smartdraw.com</span>鍙互鎵懼埌鏈夊叧SmartDraw鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濸layCase</p> <p>銆銆鍥戒駭闈㈠悜瀵硅薄鐨勫緩妯¤蔣浠訛紝鍏煎UML鍜孖DEF錛岃交閲忕駭杞歡錛屽彧鏄晫闈㈢湅璧鋒潵鏈夌偣綆鏈達紝涔冩槸楂樺睍鍏堢敓鐢―elphi瀹屾垚鐨勩?/p> <p>銆銆<strong>鐗堟湰鎺у埗</strong></p> <p>銆銆----錛濩learCase</p> <p>銆銆Rational鐨勭増鏈帶鍒剁鐞嗚蔣浠訛紝鍔熻兘寮哄ぇ錛屽彲浠ユ帶鍒跺縐嶇被鍨嬬殑鏂囨。錛岀敋鑷沖寘鎷琖ord銆丒xcel銆丳owerPoint鏂囨。銆備絾浣跨敤澶嶆潅錛屼笉鏄撲笂鎵嬶紝涓斾笉鏄厤璐硅蔣浠躲?/p> <p>銆銆----錛濩VS</p> <p>銆銆涓哄熀浜嶹eb鐨勫垎甯冨紡鍗忓悓寮鍙戞彁渚涗簡鐗堟湰鎺у埗綆$悊鎵嬫錛屼笖鏄厤璐硅蔣浠訛紝鍙互閫氳繃鑴氭湰瀹氬埗鍔熻兘銆備絾鍦ㄦ潈闄愭帶鍒舵柟闈㈠姛鑳界浉瀵硅緝寮便?/p> <p>銆銆----錛濾SS</p> <p>銆銆寰蔣鐨勭増鏈帶鍒剁鐞嗗伐鍏鳳紝鍔熻兘鐩稿綆鍗曪紝閫傚悎浜庡皬鍨嬪洟闃熷紑鍙戯紝灝嗗叾鏁村悎鍒板井杞殑鍏朵粬寮鍙戝伐鍏蜂腑錛屼嬌鐢ㄨ搗鏉ュ崄鍒嗘柟渚褲?/p> <p>銆銆----錛濻ourceOffSite</p> <p>銆銆寰蔣涓哄紑鍙戜漢鍛樻彁渚涚殑榪滅▼璁塊棶VSS鏁版嵁搴撶殑宸ュ叿錛屼嬌鏁版嵁搴撳緱浠ヨ繙紼嬫洿鏂幫紝浠ユ敮鎸佽繙紼嬪姙鍏傚叾浠栫殑鐗堟湰綆$悊宸ュ叿榪樺寘鎷細PVCS銆乂CS銆丷CS絳夈?/p> <p>銆銆<strong>XML</strong></p> <p>銆銆----錛瀍xpat</p> <p>銆銆鐢ㄤ簬璇誨彇鍜屽鐞哫ML鏂囨。鐨刢鍑芥暟搴擄紝鏈鍒濇槸James Clark鐨勪釜浜轟綔鍝侊紝綆鍗曡交宸э紝涓旈熷害蹇備絾鏀寔鐨勭紪鐮佹柟寮忔湁闄愶紝鏈閬楁喚鐨勬槸涓嶆敮鎸佷腑鏂囥備粠<span style="COLOR: #4c408c">http://expat.sourceforge.net</span>鍙互鎵懼埌鏈夊叧expat鐨勮緇嗕俊鎭?/p> <p>銆銆----錛瀤ml4c</p> <p>銆銆IBM鐨刋ML Parser錛岀敤c++璇█鍐欏氨錛屽姛鑳借秴綰у己澶с傚彿縐版敮鎸佸杈?00縐嶅瓧絎︾紪鐮侊紝鑳藉鏀寔涓枃錛岄傚悎浜庡ぇ瑙勬ā鐨剎ml搴旂敤銆傝嫢鍙槸寰堝皬鑼冨洿鐨勫簲鐢紝鍒欓潪鏈浣抽夋嫨錛屾瘯绔燂紝浣犻渶瑕?鑳岃礋"綰?2M宸﹀彸鐨刣ll鐨勬矇閲嶈礋鎷呫備粠<span style="COLOR: #4c408c">http://www.alphaworks.ibm.com/tech/xml4c</span>鍙互鎵懼埌鏈夊叧xml4c鐨勮緇嗕俊鎭?/p> <p>銆銆----錛瀀erces c++</p> <p>銆銆Apache鐨刋ML欏圭洰錛屽悓鏍鋒槸c++瀹炵幇錛屾潵婧愪簬IBM鐨剎ml4c錛屽洜姝ょ紪紼嬫帴鍙d篃鏄拰xml4c涓鑷寸殑銆備絾鏄洰鍓嶅彧鏀寔灝戞暟鐨勫瓧絎︾紪鐮侊紝濡侫SCII錛孶TF-8錛孶TF-16絳夛紝涓嶈兘澶勭悊鍖呭惈涓枃瀛楃鐨刋ML鏂囨。銆備粠<span style="COLOR: #4c408c">http://xml.apache.org/xerces-c</span>鍙互鎵懼埌鏈夊叧Xerces c++鐨勮緇嗕俊鎭?/p> <p>銆銆<strong>嫻嬭瘯</strong></p> <p>銆銆----錛濩ppUnit</p> <p>銆銆涓涓猚++鐨勫崟鍏冩祴璇曟鏋訛紝鍙互閫氳繃媧劇敓嫻嬭瘯綾葷殑鏂瑰紡錛屽畾鍒跺叿浣撶殑嫻嬭瘯鏂規銆倄Unit瀹舵棌鐨勪竴鍛橈紝浠嶫Unit縐繪鑰屾潵錛孞Unit鏄疛ava璇█鐨勫崟鍏冩祴璇曟鏋躲備粠<span style="COLOR: #4c408c">http://cppuint.sourceforge.net</span>鍙互鎵懼埌鏈夊叧CppUint鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濺ational ROBOT</p> <p>銆銆Rational鐨勮嚜鍔ㄥ寲嫻嬭瘯宸ュ叿錛岄氳繃緙栧啓鑴氭湰鐨勬柟寮忔彁渚涜嚜鍔ㄥ寲嫻嬭瘯鐗規с傚叾GUI鏂瑰紡鐨勮剼鏈綍鍒跺姛鑳斤紝鏈夊姪浜庡GUI杞歡榪涜鍔熻兘嫻嬭瘯錛涘叾VU鏂瑰紡鐨勮剼鏈綍鍒跺姛鑳斤紝鏈夊姪浜庢祴璇曟煇浜涜蔣浠剁殑鏁版嵁閫氳鍔熻兘銆?/p> <p>銆銆----錛濺ational Purify</p> <p>銆銆鍚屾牱鏄疪ational鐨勮嚜鍔ㄥ寲嫻嬭瘯宸ュ叿錛屼笉闇瑕佽嫻嬬▼搴忕殑婧愪唬鐮侊紝鍙互鐢ㄦ潵媯鏌ュ唴瀛樿闂敊璇乄indows API璋冪敤閿欒絳夛紝浠ュ畬鎴愯蔣浠剁殑鍙潬鎬ф祴璇曪紝灞炰簬鐧界洅嫻嬭瘯銆?/p> <p>銆銆鍏朵粬鐨凴ational嫻嬭瘯宸ュ叿榪樺寘鎷細TestFactory銆丳ureCoverage銆乀estManager絳夈?/p> <p>銆銆<strong>鏃ュ織</strong></p> <p>銆銆----錛瀕og4cpp</p> <p>銆銆涓涓敤浜庢棩蹇楄褰曠殑c++鍑芥暟搴擄紝鍙互灝嗗唴瀹逛互瀹氬埗鐨勬柟寮忚褰曞埌涓嶅悓鐨勭洰鐨勫湴錛屾瘮濡傦細鏂囦歡銆佹帶鍒跺彴syslog絳夛紝鍚屾椂榪樺彲浠ラ氳繃鎺у埗璁板綍綰у埆鏉ュ睆钄芥帀鏌愪簺鏃犲叧璁板綍銆備粠<span style="COLOR: #4c408c">http://log4cpp.sourceforge.net</span>鍙互鎵懼埌鏈夊叧log4cpp鐨勮緇嗕俊鎭?/p> <p>銆銆<strong>娉ㄩ噴</strong></p> <p>銆銆----錛濪oc++</p> <p>銆銆娉ㄩ噴鏂囨。鐢熸垚宸ュ叿錛屾牴鎹簮紼嬪簭涓殑鏂囨。娉ㄩ噴錛屽彲浠ヨ緭鍑篢eX鍜孒TML鏍煎紡鐨勬枃妗c傞櫎浜嗘敮鎸乧/c++璇█澶栵紝榪樻敮鎸両DL鍜宩ava銆備粎鎻愪緵鍛戒護琛屼嬌鐢ㄦ柟寮忋備粠<span style="COLOR: #4c408c">http://docpp.sourceforge.net</span>鍙互鎵懼埌鏈夊叧Doc++鐨勮緇嗕俊鎭?/p> <p>銆銆----錛濪oxygen</p> <p>銆銆娉ㄩ噴鏂囨。鐢熸垚宸ュ叿錛岃緝涔婦oc++鍔熻兘鏇翠負榻愬叏錛屽彲浠ョ敓鎴愬寘鎷琀TML銆丳DF銆丷TF鍦ㄥ唴鐨勫縐嶆牸寮忕殑鏂囨。錛屽茍鏈塆UI鐣岄潰錛岄櫎浜嗘敮鎸乧/c++璇█澶栵紝榪樻敮鎸両DL銆乯ava銆丳HP銆乧#絳夈備粠<span style="COLOR: #4c408c">http://www.stack.nl/~dimitri/doxygen</span>鍙互鎵懼埌鏈夊叧Doxygen鐨勮緇嗕俊鎭?/p> <img src ="http://www.shnenglu.com/daiybh/aggbug/32902.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/daiybh/" target="_blank">浠f潕</a> 2007-09-26 14:17 <a href="http://www.shnenglu.com/daiybh/archive/2007/09/26/32902.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[zt]鎸哄ソ鐜╃殑C璇彞http://www.shnenglu.com/daiybh/archive/2007/08/06/29443.html浠f潕浠f潕Mon, 06 Aug 2007 09:47:00 GMThttp://www.shnenglu.com/daiybh/archive/2007/08/06/29443.htmlhttp://www.shnenglu.com/daiybh/comments/29443.htmlhttp://www.shnenglu.com/daiybh/archive/2007/08/06/29443.html#Feedback0http://www.shnenglu.com/daiybh/comments/commentRss/29443.htmlhttp://www.shnenglu.com/daiybh/services/trackbacks/29443.html杞嚜绱綏鍏拌尪棣?/a>

鎴戝湪瀛︿範VC,鎴栬呭湪闃呰鍒漢鍐欑殑鏂囩珷鐨勬椂鍊?鍋跺皵紕板埌涓嬮潰寰堝鏈夎叮鐨?騫朵笖寰堝鎬殑璇彞,鏁寸悊璧鋒潵,浠ュ鍚庡繕. 鍏跺疄鏈変簺鏄笉澶у鏄撴兂鍒扮殑鎶宸э紝璐村嚭鏉ユ潈褰撳ぇ浼欓キ鍚庢病浜嬬殑灝忓搧鏂囷紝褰撶劧涓嶈榪囧鐨勭湅閲嶇被浼肩殑璇彞瀛︿範錛岃屽拷鐣ヤ簡鍩虹鐭ヨ瘑銆?br/>

涓. 濂囨殑瀹忓畾涔?br/>(1) #define for if(0); else for
鎸夌収c++鏍囧噯,for涓畾涔夌殑鍙橀噺鐨勪綔鐢ㄥ煙搴旇鍙湪for寰幆涓湁鏁?鑰孷C鍗翠笉琛?姣斿榪欐牱瀹氫箟鏄笉瀵圭殑
for(int i=0;i<90;i++)
{
...;
}

for(int i=0;i<90;i++) //閲嶅瀹氫箟i鍙橀噺
{
...;
}

濡傛灉鍔犱笂鏍囬鐨勯偅鍙?閭d箞灝卞彲浠ヤ簡,灝辨槸璁﹊浣滅敤鍩熷眬闄愬湪else涓? 榪欎釜闂鍦╪et涓凡緇忓緱鍒拌В鍐熾?/p>


浜屻佸畯瀹氫箟鎬湀
#define wait_event(wq,condition) \
do{ \
if(condition) \
break; \
__wait_event(wq,condition); \
}while(0)


鏄庢槑榪欏彞璇濆彧鎵ц涓嬈?涓轟粈涔堣繕榪樼敤do-while璇彞鍛?

鍋囪鏈夎繖鏍蜂竴涓畯瀹氫箟
#define macro(condition) \
if(condition) dosomething();
鐜板湪鍦ㄧ▼搴忎腑榪欐牱浣跨敤榪欎釜瀹忥細
if(temp)
macro(i);
else
doanotherthing();
涓鍒囩湅璧鋒潵寰堟甯革紝浣嗘槸浠旂粏鎯蟲兂銆傝繖涓畯浼氬睍寮鎴愶細
if(temp)
if(condition) dosomething();
else
doanotherthing();
榪欐椂鐨別lse涓嶆槸涓庣涓涓猧f璇彞鍖歸厤錛岃屾槸閿欒鐨勪笌絎簩涓猧f璇彞榪涜浜嗗尮閰嶏紝緙栬瘧閫氳繃浜嗭紝浣嗘槸榪愯鐨勭粨鏋滀竴瀹氭槸閿欒鐨勩備負浜嗛伩鍏嶈繖涓敊璇紝鎴戜滑浣跨敤do{鈥?}while(0) 鎶婂畠鍖呰9璧鋒潵錛屾垚涓轟竴涓嫭绔嬬殑璇硶鍗曞厓錛屼粠鑰屼笉浼氫笌涓婁笅鏂囧彂鐢熸販娣嗐傚悓鏃跺洜涓虹粷澶у鏁扮殑緙栬瘧鍣ㄩ兘鑳藉璇嗗埆do{鈥while(0)榪欑鏃犵敤鐨勫驚鐜茍榪涜浼樺寲錛屾墍浠ヤ嬌鐢ㄨ繖縐嶆柟娉曚篃涓嶄細瀵艱嚧紼嬪簭鐨勬ц兘闄嶄綆銆?br/>榪欎釜鐢ㄦ硶鍦╨inux婧愮爜涓緢甯歌銆?/p>

涓夈佸姛鑳藉己澶х殑瑙i噴
闄や簡/* */鍜?//瑙i噴浠ュ錛屼綘瑙佽繃榪欐牱鐨勮В閲婃柟娉曚簡鍚楋紵
#if(0)
........
#endif

榪欐牱鏄負浜嗚В閲婃帀鏌愭紼嬪簭,鑰屼笉褰卞搷鍏朵腑鐨?*...*/鐨勪綔鐢?渚夸簬璋冭瘯錛岃?*.....*/鏄笉鑳藉祵濂楃殑,緙栬瘧浼氬嚭閿?

鍥涖佹暟緇勫彉鑴?a[i]鍜宨[a]
鍦ㄧ▼搴忛噷鏈簲璇ョ敤a[i]錛屼絾i[a]绔熺劧鍜宎[i]杈撳嚭鐨勭粨鏋滀竴鏍楓備負浠涔堛備粖澶╂妸闂鏁寸悊濡備笅錛?br/>i[a]鏄爣鍑嗚娉曘?[]"縐頒負涓嬫爣榪愮畻絎︼紝鍏惰娉曚負錛?br/>postfix_expression [ expression ]
鍏朵腑"postfix_expression"鍜?expression"涔嬩腑蹇呴』鏈変竴涓槸鎸囬拡綾誨瀷錛堟垨鏁扮粍錛夛紝鑰屽彟涓涓槸鏁村瀷銆?br/>渚嬪涓嬮潰鐨勭▼搴忔槸瀹屽叏鍚堟硶鐨勶細
int a[]={0,1,2,3,4};
printf("%d\n",3[a]);
涓嬫爣榪愮畻絎﹀弬涓庣殑琛ㄨ揪寮忓湪姹傝В鏃朵粎浠呮槸鍋氫竴涓彉鎹㈣屽凡錛屽皢"postfix_expression [ expression ]"
鏀瑰啓涓? * ( postfix_expression + expression ) "錛屽洜姝[3]鍜?[a]鍒嗗埆鏀瑰啓涓?(a+3)鍜?(3+a)錛?br/>鍙浜岃呮槸瀹屽叏絳変環鐨勩備絾娉ㄦ剰涓嶈鐢╥[a]榪欑褰㈠紡錛屽洜涓哄畠涓嶇鍚堟棩甯鎬範鎯?br/>瀹為獙浠g爜錛?br/>#include "stdafx.h"
#include "iostream.h"
int f();
int main(int argc, char* argv[])
{

int a[20]={1,2,3,4,5,6,7,8,9};
cout<<a[f()]<<endl;
cout<<f()[a]<<endl;
return 0;
}

int f()
{
return 4;
}

瀹為獙緇撴灉錛?br/>4
4
Press any key to continue

浜斻佸弻鑳炶儙瀹氫箟鍜屽0鏄庯細int x;x;

榪欏効鏄釜鍏充簬瀹忕殑闂錛屾垜鏇劇敤榪嘇TL鐨勪覆杞崲瀹忥紝鍖呮嫭W2A錛屽紑濮嬫湁浜涗笢瑗挎垜榪樹笉澶槑鐧姐備負浜嗕嬌鐢ㄨ繖浜涘畯錛屽繀欏誨湪鍑芥暟鐨勫紑濮嬪鐢║SES_CONVERSION鏉ュ垵濮嬪寲鏌愪簺灞閮ㄥ彉閲忋傜敤灝辯敤鍚э紝浣嗘槸鐪嬬湅榪欎釜瀹忕殑瀹氫箟錛屽畠鏈夌被浼間笅闈㈢殑浠g爜錛?/p>

// 鍦╝tlconv.h鏂囦歡涓?br/>#define USES_CONVERSION \
int _convert; _convert; \
UINT _acp = GetACP(); _acp; \
LPCWSTR _lpw; _lpw; \
LPCSTR _lpa; _lpa

涓轟粈涔堝畠浠敤"int x;x;"--榪欑鍚庨潰璺熺潃鍙橀噺鐨勫0鏄庯紵

寰堝浜洪兘紕板埌榪囪繖涓護浜哄洶鎯戠殑闂錛屽悗鏉ュ彂鐜扮畝鍗曠殑絳旀鏄細紱佹緙栬瘧鍣ㄧ殑璀﹀憡淇℃伅錛坵arning錛夈傚鏋滃崟鐙湁涓琛屼唬鐮侊細
int x;
涓斾粠鏉ユ病鏈変嬌鐢ㄨ繃x錛岄偅涔堢紪璇戝櫒姹囨姤閿?unreferenced local variable錛歺",鎰忔濇槸鏈紩鐢ㄨ繃鐨勫眬閮ㄥ彉閲弜錛屽鏋滃皢璀﹀憡淇℃伅鐨勮緭鍑?br/>璋冨埌鏈澶с備負浜嗛伩鍏嶈鍘岀殑璀﹀憡錛孶SES_CONVERSION寮曠敤澹版槑鐨勫彉閲忋?/p>

int x; // 澹版槑
x; // 浣跨敤榪欎釜鍙橀噺

鍦–++涔嬪墠鐨勬椂浠o紝紼嬪簭鍛樻湁鏃跺湪C涓敤鍑芥暟褰㈠弬鍋氬悓鏍風殑浜嬫儏鏉ラ伩鍏?unreferenced formal parameter"鎴栧叾瀹冪殑娣卞ゥ璐硅В鐨勭紪璇戦敊璇?/p>

void MyFunc(int x, char y)
{
x;
y;
鈥?br/>}

褰撶劧錛岀幇鍦ㄧ敤涓嬮潰鐨勪唬鐮佸彲浠ユ洿鏈夋晥鍦板畬鎴愬悓鏍風殑浜嬫儏錛?/p>

// 鍙傛暟 x 涓嶆槸鐢?br/>void MyFunc(int /* x */)
{
鈥?br/>}



浠f潕 2007-08-06 17:47 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美freesex8一10精品| 国产视频精品xxxx| 久久久国际精品| 欧美日韩一区二区在线视频 | 亚洲国产成人午夜在线一区| 99精品视频一区| 亚洲精品乱码久久久久久按摩观| 欧美一级在线视频| 亚洲欧美日韩精品久久| 欧美日本三级| 亚洲国产欧美一区| 亚洲国产精品va在线看黑人动漫 | 国产精品尤物| 一区二区三区久久网| 99视频国产精品免费观看| 久久这里有精品15一区二区三区| 久久精品色图| 国产欧美一区在线| 亚洲欧美日韩电影| 欧美中文字幕视频| 国产日韩精品一区二区三区在线| 亚洲午夜av在线| 欧美一区二区高清| 国产欧美一区二区三区在线看蜜臀| 亚洲图片欧美日产| 欧美一区成人| 国产亚洲精品v| 欧美影院在线| 欧美91精品| 亚洲美洲欧洲综合国产一区| 欧美sm重口味系列视频在线观看| 欧美黄色一级视频| 一区二区毛片| 国产精品久久久久免费a∨ | 亚洲一区www| 性欧美暴力猛交69hd| 国产欧美日韩亚州综合| 久久不射网站| 欧美成人福利视频| 在线视频日韩精品| 国产精品亚洲不卡a| 欧美一区深夜视频| 欧美激情无毛| 午夜激情亚洲| 伊人狠狠色丁香综合尤物| 欧美国产日韩一区二区三区| 99精品国产在热久久| 欧美中文在线字幕| 亚洲国产裸拍裸体视频在线观看乱了| 欧美国产精品v| 亚洲一区亚洲二区| 免费成年人欧美视频| 一区二区三区日韩| 国产在线观看精品一区二区三区| 久久综合激情| 亚洲午夜激情| 欧美福利视频在线观看| 午夜国产不卡在线观看视频| 一区二区三区在线高清| 欧美日韩美女| 久久久国产精品亚洲一区| 日韩午夜黄色| 免费亚洲视频| 欧美一区二区三区四区在线| 在线看日韩av| 国产日本欧美一区二区三区在线| 久久综合久久综合久久综合| 亚洲深夜av| 亚洲激情视频在线| 久久久最新网址| 亚洲主播在线观看| 亚洲美女视频网| 国内精品久久久久影院薰衣草| 欧美日韩成人免费| 美国成人直播| 欧美亚洲综合在线| 一本在线高清不卡dvd| 欧美成人免费在线观看| 亚洲一区二区三区色| 亚洲国产你懂的| 国产有码一区二区| 国产精品伦子伦免费视频| 免费亚洲婷婷| 久久久噜噜噜久久久| 午夜一区在线| 亚洲综合大片69999| 夜夜嗨av一区二区三区中文字幕 | 欧美黄色影院| 看欧美日韩国产| 久久国产精品久久久久久| 中文成人激情娱乐网| 91久久久久久久久| 欧美激情一区二区三区成人| 久久久久看片| 久久久久久久尹人综合网亚洲| 亚洲自拍偷拍网址| 亚洲一区欧美二区| 亚洲性av在线| 亚洲一二三区精品| 亚洲视频专区在线| 在线亚洲伦理| 亚洲综合色网站| 亚洲一区二区三区高清| 亚洲美女淫视频| av不卡免费看| 亚洲性夜色噜噜噜7777| 亚洲一区www| 午夜一区在线| 久久精品亚洲一区二区| 欧美在线视频免费| 久久精品视频在线观看| 久久精品国产v日韩v亚洲| 久久精品欧美日韩精品| 久久久久这里只有精品| 久久野战av| 欧美激情一区二区三区四区 | 久久综合给合久久狠狠狠97色69| 久久黄金**| 美日韩丰满少妇在线观看| 免费欧美在线视频| 亚洲国产欧美在线人成| 亚洲精品资源| 亚洲视频在线观看一区| 香港久久久电影| 久久综合色婷婷| 欧美精品一区在线发布| 国产精品第十页| 国内精品久久久久久久果冻传媒| 激情亚洲一区二区三区四区| 亚洲国产欧美日韩| 亚洲午夜电影网| 久久久高清一区二区三区| 美女主播一区| 一区二区毛片| 久久久国产精品一区| 欧美极品影院| 国产精品一区二区三区久久久 | 亚洲承认在线| 亚洲网友自拍| 麻豆国产精品va在线观看不卡| 亚洲电影免费观看高清完整版在线观看| 亚洲国产精品成人| 亚洲综合精品四区| 裸体一区二区| 国产欧美大片| 日韩亚洲在线观看| 久久久www成人免费无遮挡大片| 欧美激情久久久久久| 亚洲一区自拍| 欧美激情一区三区| 国产一区再线| 亚洲综合第一| 亚洲国产精品电影| 性欧美1819性猛交| 欧美日韩综合在线| 亚洲第一中文字幕在线观看| 亚洲免费在线观看| 亚洲国产精品一区二区尤物区| 亚洲欧美日韩视频二区| 欧美日韩国产成人精品| 1024国产精品| 久久er99精品| 亚洲素人在线| 欧美精品国产精品| 亚洲大片av| 久久另类ts人妖一区二区| 99精品视频免费观看视频| 美女图片一区二区| 狠狠色综合播放一区二区| 午夜精品999| 一区二区三区回区在观看免费视频| 你懂的视频欧美| 在线观看欧美激情| 久久久久久尹人网香蕉| 亚洲一区三区电影在线观看| 欧美日韩视频在线一区二区 | 欧美成人高清视频| 久久激情五月激情| 国产欧美亚洲日本| 欧美亚洲专区| 亚洲一区视频在线| 欧美视频在线观看免费网址| 99精品国产热久久91蜜凸| 欧美大片免费看| 久久久久久久精| 激情偷拍久久| 免费久久99精品国产自在现线| 欧美一区激情| 伊人久久大香线蕉av超碰演员| 久久riav二区三区| 欧美一区二区视频在线观看| 国产欧美一区二区色老头 | 亚洲国产老妈| 欧美国产第一页| 一本久道久久久| 亚洲美女毛片| 国产精品萝li| 久久福利电影| 久久精品视频va| 亚洲黄色成人久久久|