D2010编译的程序在部分WINXP电脑上运行出错
【求助】D2010编译的程序在部分WINXP电脑上运行出错
最近将一个程序从D7转换到D2010,在部分WINXP系统的电脑运行错误,错误信息为:
Access violation at address 0040303F in module 'OnEyeManager.exe'. Write of address 0038003C.
而在另外一些WINXP系统的电脑上运行正常,开始以为是操作系统版本的原因,因为不能运行电脑的操作系统都是电脑公司装的,就把其中一台的系统格了重新安装,还是运行出错。
然后就整了个虚拟机,装上D2010,编译没报错,逐步调试,发现出错的地方是Copy函数,我疯狂了......
求大神指导!
------解决方案--------------------
D2009-用ANSI,2009+用Unicode,字符串编码问题。贴一下代码
------解决方案--------------------
if aDir[length(aDir)] <> '\' then aDir := aDir + '\'
------解决方案--------------------
DELPHI有自带的函数添加目录结束符:
最近将一个程序从D7转换到D2010,在部分WINXP系统的电脑运行错误,错误信息为:
Access violation at address 0040303F in module 'OnEyeManager.exe'. Write of address 0038003C.
而在另外一些WINXP系统的电脑上运行正常,开始以为是操作系统版本的原因,因为不能运行电脑的操作系统都是电脑公司装的,就把其中一台的系统格了重新安装,还是运行出错。
然后就整了个虚拟机,装上D2010,编译没报错,逐步调试,发现出错的地方是Copy函数,我疯狂了......
求大神指导!
D7转D2010
WINXP运行出错
------解决方案--------------------
D2009-用ANSI,2009+用Unicode,字符串编码问题。贴一下代码
------解决方案--------------------
if aDir[length(aDir)] <> '\' then aDir := aDir + '\'
------解决方案--------------------
DELPHI有自带的函数添加目录结束符:
function IncludeTrailingPathDelimiter(const S: string): string;
begin
Result := S;
if not IsPathDelimiter(Result, Length(Result)) then
Result := Result + PathDelim;
end;