??xml version="1.0" encoding="utf-8" standalone="yes"?> 提示“initialization failure 0x00000002”?/p>
惛_载tm2008Q结果找不到“tm2008 preview.msi”Q无法卸载,重新安装也要先卸载,实没办法了?/p>
后来到网上找{案Q终于解冟?/p>
下蝲微Y提供的Windows Installer清理实用工具Q?a >http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exeQ官方说?a >http://support.microsoft.com/kb/290301Q?/p>
安装后在C:\Program Files\Windows Installer Clean Up下有个msicuu.exeQ运行,扑ֈTM2008Q选中它,点removeQ然后就可以重新安装TM2008了?/p>
注:实践发现Q不一定会在列表里发现TM2008字眼Q此时可以找是否存在[1.5.535]cM于这L信息Q若有,选中点remove卛_解决? 然后重新安装TM2008Q一切正常,OK?/p>
----------------------------------------------
此内{?from: http://blog.163.com/chen_chb/blog/static/29602002009880512839/
今天启动腾讯TM的时候让升Q没注意点了定Q结果升U完成,TM启动p|?/p>
ҎQ?br>使用windows Installer 安装的程序会?C:\WINDOWS\Installer 留下痕迹Q,
如果哪天手痒l删了,Q估计卸载对应程序就不得行?br>到时候?windows Installer 清理工具吧,Q好像要 多remove 几次。。才能成?
1 在OnInitDialog ()?br> SetTimerQ?,100,null)
在OnTimer(UINT nIDEvent) ?br> if( nIDEvent==1)
{
ShowWindow(sw_hide);
KillTimer(1);
}
///q种Ҏ 会出?E序在显C器?闪一下的效果。。即?timer 旉很短 Q也会有?br>
2 重蝲 WM_WINDOWPOSCHANGING
在重载函数内实现Q?br> OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
if( !m_bShowWindow)
lpwndpos->flags &= ~SWP_SHOWWINDOW;
CDialog::OnWindowPosChanging(lpwndpos);
// TODO: Add your message handler code here
}
m_bShowWindow 是我的一个变量,初始gؓfalse
// 如果 m_bShowWindow 一直ؓfalse Q那么程序就见不Ch了。?br> 所以应该给 True
在OnInitDialog ()?br> SetTimerQ?,1000,null)
在OnTimer(UINT nIDEvent) ?br> if( nIDEvent==1)
{
m_bShowWindow =true;
KillTimer(1);
}
svn://proj/ | +-trunk +-branches +-tagsq是一个标准的布局QtrunkZ开发目录,branches为分支开发目录,tags为tag存档目录Q不允许修改Q。但是具体这几个目录应该如何使用Qsvnq没有明的规范Q更多的q是用户自己的习惯?br>
转自Q?span style="line-height: 20px; ">http://hi.baidu.com/sophiaandphilem/blog/item/b63912dff2f17e1263279851.html
Note: http://book.csdn.net/bookfiles/220/10022010453.shtml有非常好的用介l,详细全面?/p>
安装好CVSNT后,需要用命o行设|用P密码Q否则会出现cMI/O错误的问题:
假设装在?: C:/Program Files/CVS ?在命令行中[cmd]中,q入q个文g夹,q行命oQ?br style="line-height: normal; ">cvs -d C:\cvsfile passwd -a giles ,
next step ,input the password for user-giles ,restart the cvs serve ,you can use it now ...
Generally , you need to make user write the repository , so open the control panel---->Advanced -> unselect the All users are read item ...
Then , It is ok for you to enjoy it .. -----------------
---------------
compatibility options
CvsNT clients 选中前三就好,不选的话,兼容性差点,当然不会影响自己使用?/font>
cvs -d C:\cvsfile passwd -r administrator -a giles , q样giles用户有了理员权限。?/font>
最好把cvs的储存库攑֜C盘,不然会发生各L诡异错误?/font>
2. CVS Control Panel 里的 Server Settings 也需要设|, 不然有可能出?no such domain的提C?/font>
3. 支持字符集的问题Q?在徏好服务器后,右键点击Q在属性里面可以修改字W集?/p>
4. 如果本地能连上CVSQ但是局域网内另外的用户q接不上Q那很可能是windows 防火墙的问题 ?/p>
我们需要在防火墙的例外里面d CVs.exe ?默认?2401端口 。?/p>
好的使用习惯Q?/font>
1. One day ,One Commit .
2. Update before modifying the code.
3. Update before committing the code, or else you may encounter some conflicts.
Update 的时候,会把server中的代码和本地的代码q行merge Q而不是简单的覆盖本地代码?/p>
如果commit之前不进行updateQ则׃CVS不允许在commit的时候自动进行mergeQ极有可能生冲H?/p>
一般用update和commit可以了?/p>
要终止程序,请单?#8220;定”?br>要调试程序,请单?#8220;取消”?br>---------------------------
定 取消
---------------------------
log4cpp是个ZLGPL的开源项目,是基于优U的日志处理跟t项目Java语言的log4jULq来的。log4j介绍的文档很多,在java领域使用的也比较q泛Q而这个功能强大的库对国内的C++语言开发h员却使用的不多。这里从开发h员用的角度介绍q个库,使开发h员用最的代h快掌握q种技术。下面先单介l一下这个项目的优点Q也是log4j的优点)Q然后分原理Q手动用步骤,配置文g驱动方式使用步骤Q其他考虑{方面进行讨论。以下讨论基于log4cpp0.3.4b?/p>
log4cpp?个主要的lgQcategoriesQ类别)、appendersQ附加目的地Q、和 layoutsQ布局Q。(Z方便大家理解Q文中尽量用英文原词)
layoutcL制输出日志消息的昄样式Q看h像什么)。log4cpp当前提供以下layout格式Q?/p>
|
appendercȝ来输出日志(被layout格式化后的)C些设备上。比如文件、syslog服务、某个socket{。可以定义自q appenderc输出日志信息到别的讑֤上,比如应用自n的日子处理进E、数据库{。appender和layout的关pLlayout附在 appender上,appenderc调用layout处理完日志消息后Q记录到某个讑֤上。log4cpp当前提供以下appenderQ?/p>
|
category cȝ正完成记录日志功能,两个主要l成部分是appenders和priorityQ优先Q。优先控制哪类日志信息可以被这个category记录Q当前优先分ؓQNOTSET, DEBUG, INFO, NOTICE, WARN, ERROR, CRIT, ALERT ?FATAL/EMERG 。每个日志信息有个优先Q每个category有个优先U,当消息的优先U大于等于category的优先Ӟq个消息才会被category记录Q否则被忽略。优先的关pd下。categorycdappender的关pLQ多个appender附在category上,q样一个日志消息可以同时输出到多个讑֤上?/p>
NOTSET < DEBUG < INFO < NOTICE < WARN < ERROR < CRIT < ALERT < FATAL = EMERG
category被组l成一个树Q子category创徏时优先~省NOTSETQcategory~省会承父category?appender。而如果不希望q种appender的承关p,log4cpp允许使用additivity 标签Qؓfalse时新的appender取代category的appender列表?/p>
Z更好的理解上面的概念下面以手动用方式D例?/p>
手动使用log4cpp的基本步骤如下:
|
另一个非怼U的特征就是通过d配置文gQ确定category、appender、layout{对象。也是我们非常推荐的使用方式Q可以灵zd通过配置文g定义所有地对象及其属性,不用重新~码Q动态更Ҏ志记录的{略?/p>
Log4cpp主要提供?log4cpp::PropertyConfigurator 和log4cpp::SimpleConfigurator两种机制Q文件格式)Q但 log4cpp::SimpleConfigurator来不再支持了,而且格式非常单,q里׃多说明,自己看源码吧?/p>
配置文g的格式和log4j的配|文件一P是标准的java属性文件格式。下面是附带的例子配|文Ӟ
|
配置文g语法如下Q不是很规范Q结合上面的例子Q应该可以看懂?/p>
|
基本使用步骤是:
下面是个单的使用代码Q用v来是非常方便的:
|
性能问题Q可能是很多想用log4cpp的程序员兛_的问题。在参考资?中有一D|q。结论就是log4j以及log4cpp是以性能为首要目标的Q如果关闭日志记录的话,Ҏ能影响可以忽略Q打开日志记录Q主要消耗是在记录动作,而不是库的管理过E;所以你可攑ֿ的用。实在要q性能的话。可以从下面斚w提高Q?/p>
输出的日志消息不要用复杂的转换或者处理,比如Q?sub1.debug(string("Current num is") + i + GetCurStat()); q种情况即不进行日志处理,括号中的语句q是会执行。变通方法是Q?/p>
|
安全性问题对于商业Y件开发可能也是问题。可能不希望别h通过修改配置文g获取E序的调试等E序内部q行情况的日志信息。比较稳妥的Ҏ或者是加密配置文gQ运行中解密Q输出到临时文g后读取;或者在发行版本里读取配|文件后Q强行把低于某个优先U的category讑ֈ比较高的优先U?/p>
多线E安全性问题。当前log4cppq没有宣U自己是多线E安全的Q不q其代码中大多数可能冲突的地斚w增加了线E互斥控Ӟ对多U程环境应该问题不大。但Z加入q个Ҏ,linux下编译log4cppӞconfigure请加?-with-pthreads 或?-with-omnithreads选项。Win版本已经加入对MSU程的支持?/p>
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. 使用Log4jq行日志操作
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/
李群Q关注于|络安全产品的开发、研IӞ软g开发过E等斚w。您可以通过liqun@nsfocus.com和他联系?/p>