Board logo

Subject: 报告一个错误 [Print This Page]

Author: Elever    Time: 2007-4-24 16:16     Subject: 报告一个错误

vista下d2007加载307版时报错
没有找到307调试版
就先贴图了

[ 本帖最后由 Elever 于 2007-4-24 16:18 编辑 ]

Image Attachment: bug.JPG (2007-4-24 16:17, 91.82 K) / Download count 369
http://bbs.cnpack.org/attachment.php?aid=292


Author: Passion    Time: 2007-4-24 17:31

能否先把Delphi Speedup禁用一下看看?两个fastcode怕有冲突。
Author: Elever    Time: 2007-4-24 21:42

明天到公司试试,家里没有vista
但是在家里的机器上,用的是XP,也是装了Speedup的,就没有问题。
Author: shenloqi    Time: 2007-4-25 14:23

cnpack的安装包对vista的支持挺不好的,安装包创建的文件夹的用户似乎不是当前用户,所以卸载和删除时有些问题。因为已经卸载了vista,所以具体的问题我忘记了。
Author: zjy    Time: 2007-4-25 21:31     Subject: 一直想装个vista测试

无奈内存只有512,在虚拟机里头跑不动。后来找了个内存补丁支持在256内存里安装,结果安装程序又有问题,郁闷。
Author: Passion    Time: 2007-4-25 22:56

五一期间准备强行弄个VITSA测测。
Author: Elever    Time: 2007-4-26 09:47

问一下,Speedup怎么禁用?是不是只有卸载?
Author: niaoge    Time: 2007-4-26 10:48

这个问题我遇到过,与Vista无关,两个fastcode有冲突,冲突的原因如下
delphispeedup内的fastcode是在第一时间替换delphi里相关原过程或函数
fastcode替换delphi里相关原过程或函数方式如下
如果工程(exe,dll)有fastcode,fastcode将在pas文件的顺序位替换delphi里的相关函数或是过程,比如工程里pas文件的顺序位是forms.pas,windows.pas,fastcode.pas........,那么fastcode将在第三位时做替换工作,fastcode在替换之前先查找相关函数或过程朋没有被替换过,但是查找方式有限.
导致冲突的原因有
delphispeedup将fastcode.pas放在工程的第一位,如果delphispeedup11.dll先启动,将首先替换,cnwizard11.dll将fastcode其它pas文件的后面,以至cnwizard11.dll内的fastcode误认为delphi相关过程或函数没有被替换,因而去强行替换被替找过的过程或函数,导至寻址出错.
解决的方法有,
1。先装cnwizards后装,以保证delphispeedup替换正确或者判断已替找过,因而不去做替换工作,(但是这个方法也很难保证delphi先启动哪个dll)
2、cnwizard将fastcode放在第dpr use里的第一位,这种方式无论谁先装都无所谓
3、如果有fastMM,将fastMM4放在第一位,将fastcode放在第二位

[ 本帖最后由 niaoge 于 2007-4-26 10:53 编辑 ]
Author: Passion    Time: 2007-4-26 11:05

关键还是SPEEDUP的BPL/DLL和CnWizards.DLL哪个先加载吧。
工程是DLL的范围,如果SPEEDUP的DLL/BPL加载比CnWizards早,CnWizards把FastCode放自己dpr的第一位也没啥用处吧,楼上说的2好像不对。
Author: Passion    Time: 2007-4-26 11:06

禁用差不多就是卸载。
或者手工注册表里头删除Experts里头的项。
需要时再加上。
Author: niaoge    Time: 2007-4-26 11:34

你可以试试把delphispeedup卸掉,然后重装,保证出现上次的问题,我试过了,并且我还在论坛里贴过图
Author: Elever    Time: 2007-4-26 12:57     Subject: 回复 #10 Passion 的帖子

不好意识,还是没搞懂,我没有找到在什么地方才能禁用的SpeedUp
另外,Experts是注册表里面那个路径下的?

还有就是,我自己的机器,XP的,装了speedup和cnwizards都没有问题,delphi2007、speedup、cnwizards的版本和Vista下面一模一样的
但vista下面就运行有问题,xp下面就一切正常
Author: Passion    Time: 2007-4-26 13:39

看看CnWizards代码中的Tools目录中的Setup工具,里头就是专门写专家注册表的。
凭记忆应该是:CurrentUser、Software、borland/Delphi/7.0/Experts.
Author: kendling    Time: 2007-4-26 21:38

我觉得直接用CnWizards好了,免得再安装DelphiSpeedUp
Author: Elever    Time: 2007-4-27 09:21

取消了就没事了
不过又出了一个新问题
见新开的帖子




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0