这个问题我遇到过,与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 编辑 ]
|