人生亦编程

--Programmable Life
posts - 86, comments - 43, trackbacks - 0, articles - 7

该软件除了虚拟作用外,还可以冒充光驱。
我现在用的电脑是没有光驱的,当运行某些免了CD但不要求虚拟的游戏来说,电脑没有光驱是不能运行的,哪怕此光驱无作用,安装虚拟光驱软件后,我的电脑里面会出现一个光驱图标的东西,不用做任何事情,都可以运行游戏了。
比如:大航海时代4xp版
英雄无敌4之疾风暴雨
ps.我终于找到这两个游戏为什么无端端不能运行的原因了哈。

posted @ 2006-08-18 08:37 人生亦编程 阅读(556) | 评论 (0)编辑 收藏

         PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。
 
C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,等等。软件除错是软件项目开发成本和延误的主要因素。PClint能够帮你在程序动态测试之前发现编码错误。这样消除错误的成本更低。
 使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。并提供编码规则检查,规范软件人员的编码行为。
由于PC-LINT对于一般程序员来说可能比较陌生,有好多人安装了也不知道怎样配置和使用。
 
 
下面我就根据自己的安装和配置心得对PC-Lint的安装、配置及使用进行下详细说明.本人主要介绍了将PC-Lint集成到VC++6.0和SourceInsight的方法和步骤。

(一)Windows下C/C++开发工具中,VC6使用较为普遍,因此这里先讲下VC6.0环境中集成pclint的步骤.
首先,
当然要下载软件,正版软件要200多$呢,买不起!所以只好网上找免费的拉。从
http://www.61ic.com/down/othe/pclint.rar 处可以下载到一个8.0版本的pclint.
1.将pclint.rar解压至c:\, 这样lint文件就位与c:\pclint(安装目录)下了。
2.将c:\pclint\lnt 下的3个文件lib-w32.lnt,env-vc6.lnt,co-msc60.lnt拷贝至c:\pclint下,
再在安装目录下创建std.lnt和options.lnt两个文件,其中std.lnt的内容如下
// contents of std.lnt
c:\pclint\co-msc60.lnt
c:\pclint\lib-w32.lnt
c:\pclint\options.lnt  -si4 -sp4
-i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\Include"
//end
其中-i后面的路径名为VC的安装路径和VC Include 文件路径,根据自己的修改便可。
options.lnt 内容可为空,为定制内容,以后需要时再添加。
准备工作做完了,下一步就是要将pclint集成到VC6中去,先配置lint使之能对单个C或C++文件进行检查。
1.打开VC6,tools--->customize-->tools 新建一个名为pclint的项,在下面填入
command:  C:\pclint\lint-nt.exe
arguments:  -u c:\pclint\std.lnt  c:\pclint\env-vc6.lnt  "$(FilePath)"
Use Output Window  打上勾
close 完成。 这个在你VC窗口tools菜单下应该多了一个pclint选项,可以用它来运行lint程序,对你的c/c++代码进行静态检查了。
现在就可以用个小程序测试一下pclint了

//test1.cpp#include <string.h>
class X
{
 int *p;
public:
 X()
 { p = new int[20]; }
 void init()
 { memset( p, 20, 'a'  ); }
 ~X()
 { delete p; }
};
编译这个文件,看下你的编译器给你多少警告,再运行下lint, 可以自己对比一下。
我的机器上,VC产生0 errors 0 warnings, 而lint程序产生了如下8条警告信息,有些还是很有用处的提示,这里就不一一分析了.
test.cpp(12): error 783: (Info -- Line does not end with new-line)
test.cpp(7): error 1732: (Info -- new in constructor for class 'X' which has no
assignment operator)
test.cpp(7): error 1733: (Info -- new in constructor for class 'X' which has no
copy constructor)
    { memset( p, 20, 'a'  ); }
test.cpp(9): error 669: (Warning -- Possible data overrun for function
'memset(void *, int, unsigned int)', argument 3 (size=97) exceeds argument 1
(size=80) [Reference: test.cpp: lines 7, 9])
test.cpp(7): error 831: (Info -- Reference cited in prior message)
test.cpp(9): error 831: (Info -- Reference cited in prior message)
    { delete p; }
test.cpp(11): error 424: (Warning -- Inappropriate deallocation (delete) for
'new[]' data)

 --- Wrap-up for Module: test.cpp
test.cpp(2): error 753: (Info -- local class 'X' (line 2, file test.cpp) not
referenced)
Tool returned code: 8

2.通常一个VC项目中包含多个C或C++文件,有时需要同时对这一系列的文件进行lint检查,我们可以通过配置一个pclint_project来达到目的。
和前面第一步中的方法基本一样,不过这里我们需要用到unix中的find等命令来查找当前目录下的C和C++文件,然后再将它们送给lint程序处理,所以得先从
http://www.weihenstephan.de/~syring/win32/UnxUtils.zip 下载UnxUtils.zip.
接着按下列步骤进行:
(i)解压UnxUtils.zip至c:\unix下, 可以看到C:\unix\usr\local\wbin有很多unix下的命令,等下会用到
(ii)打开VC6,tools--->customize-->tools
新建一个名为pclint_project的项,只不过下面的commands和arguments内容不同。
commands: C:\unix\usr\local\wbin\find.exe
arguments: $(FileDir) -name *.c  -o -name *.cpp | C:\unix\usr\local\wbin\xargs
lint-nt            -i"c:\unix\usr\local"  -u c:\pclint\std.lnt 
c:\pclint\env-vc6.lnt
(iii)Use Output Window打上勾,close退出。好了,这时VC
tools菜单下应该又多了一个pclint_project项了,你以后可以用它来对一个VC项目运行lint检查程序了.

(二)SourceInsight中集成pclint程序的方法.
Windows平台下也有好多人都喜欢用SourceInsight编辑C/C++程序,如果将pclint集成到SourceInsight中,那就相当于给SourceInsight增加了一个C/C++编译器,而且它的检查更严格,能发现一些编译器发现不了的问题,可以大大减少程序中潜伏的BUG。这样的话,相信更多人会喜欢SourceInsight这个工具了。
下面简要地介绍下pclint集成到SourceInsight中的方法
有了上面VC中集成pclint的经验, 下面的事情就应该比较轻松了,
(a)打开你的SourceInsight, 选择Options-->Custom Commands-->Add, 输入pclint(当然名字可以随便).
(b) Run中输入: c:\pclint\lint-nt  -u  c:\pclint\std.lnt  c:\pclint\env-vc6.lnt %f
(c)Dir留空,将Iconic Window, Capture Output, Parse Links in OutPut, File,then Line
四项前打上勾。
(d)然后点右侧 Menu--->Menu-->View--><end of menu>, 右侧Insert, OK.
(e)此时在SourceInsight中的View菜单下多了个pclint选项,可以用它来对单个C/C++文件进行静态检查。

用类似的方法可以配置对一个SourceInsight工程文件的lint检查。
(a)打开你的SourceInsight, 选择Options-->Custom Commands-->Add,
输入pclint_project(当然名字可以随便).
(b) Run中输入: C:\unix\usr\local\wbin\find.exe %d -name *.c  -o -name *.cpp  |
C:\unix\usr\local\wbin\xargs lint-nt
-i"C:\unix\usr\local" -u c:\pclint\std.lnt  c:\pclint\env-vc6.lnt
(c)Dir留空,将Iconic Window, Capture Output, Parse Links in OutPut, File,then Line
四项前打上勾。
(d)然后点右侧 Menu--->Menu-->View--><end of menu>, 右侧Insert, OK.
(e)此时在SourceInsight中的View菜单下多了个pclint_project选项,可以用它来一个工程中的C/C++文件进行静态检查。

本文主要对pclint集成到VC及SourceInsight环境中的方法根据本人安装和使用心得做了较详细介绍,希望对以前没使用过pclint的朋友们能有所帮助,不足之处还请多指正!

posted @ 2006-08-17 18:56 人生亦编程 阅读(499) | 评论 (0)编辑 收藏

上周末,北美各大网站都发布了关于 魔兽世界 资料片的最新信息,各网站公布的内容均有不同,整理如下,计有八大分块:副本改动、圣骑和萨满、荣誉系统、世界PVP、竞技场系统、新种族主城和坐骑资料、新增部分新地下城细节、不会出现的内容等。(注:下述大部分文字来自于转载NGACN的新闻,在此感谢。)

  副本改动

  副本人数上限减少为25人;升级副本的难度可调整,掉落物品随之变化;所有副本都是分支结构。

  副本人数上限由40人改为20人并不意味着Raid难度的降低,而是更具挑战性。暴雪会检视职业平衡,以使得每种职业都能参与Raid,而不要出现20个战士5个牧师等情况。

  圣骑和萨满

  部落增加圣骑士和联盟增加萨满的原因是暴雪已对圣骑士和萨满的职业平衡不堪重负,最终不惜调整历史背景,同时可腾出时间调整职业符合最初定位:圣骑士从单纯的治疗职业转变为第二坦克和治疗者,萨满将是伤害输出和治疗混合职业

  萨满70级将获得嗜血[Bloodlust],团队增益效果,短时间内增加近战攻击速度和减少施法速度。圣骑士将获得转移仇恨技能,类似群体嘲讽,但属于施放在队友身上的增益效果,正攻击队友的位于效果范围内的怪物将转而攻击圣骑士。

  荣誉系统

  暴雪对目前的荣誉系统不满意,认为其非游戏技巧的竞争,而更多的是大量时间和同阵营玩家间的竞争,与设计意图相差甚远,因此在资料片中进行修正,包括竞技场系统和重新制作的荣誉系统。

  现有荣誉和排名系统取消,获得的荣誉点数用来购买物品,用来购买装备的荣誉点不会随时间减少。荣誉点可通过参加战场和户外PvP获得。

  竞技场系统

  竞技场系统是两队对战,包括2v2,3v3,5v5。对战有两种模式:练习模式和竞赛系统,1-69级的玩家参加非竞赛的练习模式,用来锻炼技能;竞赛系统仅对70级玩家开放。竞技场是否开放观战还在争论之中,因为受跨服务器竞技场的存在产生的技术问题影响。通过竞技场系统可获得与当前团队副本掉落水平媲美的奖励,每个季度系统会重置,并带来新的奖励。需要的对战场次最小数量会在10场左右。竞技场系统包括联盟对部落或联盟对联盟或部落对部落,以及跨服务器。竞技场可从世界各地进入,但会位于数个特定的地点,类似目前的战场系统。

  世界PVP

  资料片中的七大新区域都将有PvP目标。例如新区域Nagrand中央有一中立城镇,联盟和部落都可占领,占领一方可获得许多利益,包括任务给予者、商人、训练师等。而另一方将无法获得这些利益。而获得控制的方式是聚集在城镇中心旗帜旁的哪方玩家数量多寡。此外,进攻方可在城镇周围设置狮鹫哨塔,然后玩家可跳上狮鹫去对城镇进行地毯式轰炸!自然防守方可以取消哨塔。新区域Terokkar的PvP目标类似1.12版,玩家可占领区域中的数个战略点获得增益效果。

  新种族主城和坐骑资料:

  德莱尼人的主城是Exodar,血精灵的主城是银月城[Silvermoon],暴雪称这两个城市将代替奥格瑞玛和铁炉堡成为首位聚集地,每个城市中将有两个银行和拍卖所。

  德莱尼人的坐骑是Elekk,有着獠牙和长角;血精灵的坐骑是Cockatrices,原意是鸡头蛇身怪兽。部落的飞行坐骑是铁甲双足飞龙,联盟的飞行坐骑是铁甲狮鹫,分为普通和精英种类,普通种类比现有的史诗坐骑要便宜很多。特殊的飞行坐骑如虚空幼龙将通过其它方式获得。

  新增部分新地下城细节:

  地狱火堡垒[Hellfire Citadel]由卡加斯领导的野蛮堕落兽人占据,其中两个分支包括适合6X低级的地狱火城墙,适合70级的地狱火军营,均是5人地下城。Raid分支是击败深渊领主麦格瑟里登[Magtheridon]的25人团队副本。

  盘牙湖泊[Coilfang Reservoir]有2个高级5人分支和1个25人Raid副本组成,目标是击败法斯琪女士[Lady Vasj]。

  奥金顿[Auchindoun]是适合6X中级的副本,这里曾是德莱尼人的墓地,一群堕落兽人试图在此召唤恶魔,其后果是该地几乎被夷平。

  泰匹斯特要塞[Tempest keep]的2个5人分支适合70级,最后是25人团队副本,副本最后是凯尔萨斯·逐日者王子。要塞需要飞行坐骑才能到达。

  卡拉赞[Karazhan]是10人70级团队副本,没有分支,大概有10个boss,最终需要击败Malchazzar王子。

  不会出现在资料片中的内容: 
 
  资料片运行时阻止暗黑之门打开的世界事件。1.13补丁将会提示玩家将会发生何事,但是不会再如安其拉开门那样搜集布匹等资源。资料片发行当日黑暗之门会打开。

  更好的公会管理。暴雪意图在资料片后的补丁中增加公会银行,但是资料片只有更完善的寻求组队功能。

  外域城市Shatrath中的拍卖所。为分流密集人口,中立Shatrath城中将会设置通往旧世界主城的传送门,但是外域的枢纽城市没有拍卖所。

  英雄职业。暴雪虽未放弃英雄职业设想,但是如何完善设计出来是另一回事。

posted @ 2006-08-15 12:45 人生亦编程 阅读(230) | 评论 (0)编辑 收藏

不能将自己的能力看得过分强大,也不能将客观环境因素看得微不足道。

posted @ 2006-08-11 12:38 人生亦编程 阅读(70) | 评论 (0)编辑 收藏

提供几个电子书的下载网址
www.infoxa.com
www.ebookcn.net
www.newebug.com

posted @ 2006-08-11 08:47 人生亦编程 阅读(93) | 评论 (0)编辑 收藏

 1 #include 
 2 main() 
 3
 4 FILE  * fp; 
 5 char  ch; 
 6 if ((fp = fopen( " c1.txt " , " rt " )) == NULL) 
 7
 8 printf( " \nCannot open file strike any key exit! " ); 
 9 exit( 1 ); 
10 }
 
11 ch = fgetc(fp); 
12 while (ch != EOF) 
13
14 putchar(ch); 
15 ch = fgetc(fp); 
16 }
 
17 fclose(fp); 
18 }
                                                   
 1 #include 
 2 main( int  argc, char   * argv[]) 
 3
 4 FILE  * fp1, * fp2; 
 5 char  ch; 
 6 if (argc == 1
 7
 8 printf( " have not enter file name strike any key exit " ); 
 9 getch();        // 用于等待输入文件名
10 exit( 0 ); 
11 }
 
12 if ((fp1 = fopen(argv[ 1 ], " rt " )) == NULL) 
13
14 printf( " Cannot open %s\n " ,argv[ 1 ]); 
15 getch(); 
16 exit( 1 ); 
17 }

18 if (argc == 2 ) fp2 = stdout; 
19 else   if ((fp2 = fopen(argv[ 2 ], " wt+ " )) == NULL) 
20
21 printf( " Cannot open %s\n " ,argv[ 1 ]); 
22 getch(); 
23 exit( 1 ); 
24 }
 
25 while ((ch = fgetc(fp1)) != EOF) 
26 fputc(ch,fp2); 
27 fclose(fp1); 
28 fclose(fp2); 
29 }
 
30

•使用文件的方式共有12种,下面给出了它们的符号和意义。
•w    代表写操作
•r     代表阅读
•b    代表二进制数
•a    代表添加操作,文件不纯在则建立
•+    代表扩展
 
“rt”  读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab”追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
 
“wt+” 读写打开或建立一个文本文件,允许读写
  “at+” 读写打开一个文本文件,允许读,或在文件末追加数据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+”读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
 
•fopen()   
•fclose()
•putc()
•fputc()
•getc()
•fgetc()
•fseek()
•fprintf
 
•fscanf()
•feof()
•ferror()
•rewind()
•remove()
•fflush()


posted @ 2006-08-10 08:55 人生亦编程 阅读(230) | 评论 (2)编辑 收藏

天阴...... 

posted @ 2006-08-08 20:42 人生亦编程 阅读(70) | 评论 (1)编辑 收藏

大家都遇到过在某张图片上看到一个很好的英文字体,想找这个字体但是又不知道这个字体的名字,所以无法找到这个字体,我给大家推荐一个好站,myfonts网站,在这个网站可以根据你给出的字体图片辨析出字体,非常好用.

posted @ 2006-08-04 18:57 人生亦编程 阅读(285) | 评论 (2)编辑 收藏

637.jpg

posted @ 2006-08-03 12:29 人生亦编程 阅读(203) | 评论 (0)编辑 收藏

是一个卡通人物,叫笨熊或者倒霉熊。
关于它的短片可参考以下网站,笑死人不偿命哈。
http://www.fesite.com/movie/
backkom2.gif
很多人说我的qq图标是个狗,难道你没发现它很像backkom么?呵呵
91.bmp

posted @ 2006-07-29 11:18 人生亦编程 阅读(391) | 评论 (1)编辑 收藏

仅列出标题
共9页: 1 2 3 4 5 6 7 8 9