CnPack Forum » CnVCL 组件包 » CnStrDiff的问题


2012-9-18 00:16 yookee
CnStrDiff的问题

XE2 update4下
项目引用CnStrDiff.pas,
执行到下面语句的时候会出错,提示访问冲突。
diagVecF[0] := x1;

对ascii字符串没问题,会不会是下面的语句在操作多字节字符串的时候有问题?
PChar(diagVecF) := PChar(IntArr_f) - SizeOf(Integer) * (MAX_DIAGONAL - MaxD);

从csdn上下了一个包,包里有别人编译好的一个程序,运行比较中文字符串没问题,但是包里的源代码在我这里运行也有这个问题。
包里的CnStrDiff.pas是早期版本,但是和现有CnVCL里的基本没啥改动。

[[i] 本帖最后由 yookee 于 2012-9-18 09:49 编辑 [/i]]

2012-9-18 11:48 Passion
我查一下。

2012-9-20 13:44 Passion
此现象可能是未处理高版本Delphi的Unicode问题导致的,Unicode版的Delphi里,Char是2字节,PChar的行为发生了变化。
楼主可以试着把PChar全都改成PAnsiChar试一试?

2012-9-20 16:41 yookee
回复 #3 Passion 的帖子

OK,好了:lol

2012-9-20 21:07 Passion
:handshake

页: [1]
查看完整版本: CnStrDiff的问题


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.