Subject:
CnStrDiff的问题
[Print This Page]
Author:
yookee
Time:
2012-9-18 00:16
Subject:
CnStrDiff的问题
XE2 update4下
项目引用CnStrDiff.pas,
执行到下面语句的时候会出错,提示访问冲突。
diagVecF[0] := x1;
对ascii字符串没问题,会不会是下面的语句在操作多字节字符串的时候有问题?
PChar(diagVecF) := PChar(IntArr_f) - SizeOf(Integer) * (MAX_DIAGONAL - MaxD);
从csdn上下了一个包,包里有别人编译好的一个程序,运行比较中文字符串没问题,但是包里的源代码在我这里运行也有这个问题。
包里的CnStrDiff.pas是早期版本,但是和现有CnVCL里的基本没啥改动。
[
本帖最后由 yookee 于 2012-9-18 09:49 编辑
]
Author:
Passion
Time:
2012-9-18 11:48
我查一下。
Author:
Passion
Time:
2012-9-20 13:44
此现象可能是未处理高版本Delphi的Unicode问题导致的,Unicode版的Delphi里,Char是2字节,PChar的行为发生了变化。
楼主可以试着把PChar全都改成PAnsiChar试一试?
Author:
yookee
Time:
2012-9-20 16:41
Subject:
回复 #3 Passion 的帖子
OK,好了
Author:
Passion
Time:
2012-9-20 21:07
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0