请教高手:关于GetFileSaveName函数的内存泄漏问题

rom 2006-12-12 10:32:21
程序是用pb8开发
在purifyplus检查内存泄漏,发现所写程序代码中有内存泄漏现象。
反复走查代码,没有发现问题,
加调试信息,设断点,单步跟踪,
最后竟然发现pb的GetFileSaveName函数存在内存泄漏。

///////////////pb代码段
string ls_path
string ls_name
integer value
value = GetFileSaveName("报文保存", ls_path, ls_name)
messagebox("跟踪",string(value))

///////////////purifyplus中信息
ABR: Array bounds read in CompareStringW {1 occurrence}
Reading 20 bytes from 0x001b9b60 (6 bytes at 0x001b9b6e illegal)
Address 0x001b9b60 is argument #3 of CompareStringW
Address 0x001b9b60 is 216 bytes into a 230 byte block at 0x001b9a88
Address 0x001b9b60 points to a Global/LocalAlloc'd block
Thread ID: 0x1b8
Error location
CompareStringW [C:\WINNT\system32\KERNEL32.DLL]
EqualRect [C:\WINNT\system32\USER32.dll]
DialogBoxIndirectParamA [C:\WINNT\system32\USER32.dll]
GetOpenFileNameA [C:\WINNT\system32\COMDLG32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
GetWindowLongA [C:\WINNT\system32\USER32.dll]
Allocation location
LocalAlloc [C:\WINNT\system32\KERNEL32.DLL]
EqualRect [C:\WINNT\system32\USER32.dll]
DialogBoxIndirectParamA [C:\WINNT\system32\USER32.dll]
GetOpenFileNameA [C:\WINNT\system32\COMDLG32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
ScreenToClient [C:\WINNT\system32\USER32.dll]
GetWindowLongA [C:\WINNT\system32\USER32.dll]


那位高手有空给看一看,呵呵,
...全文
187 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
AFIC 2006-12-12
  • 打赏
  • 举报
回复
升级pb8,只要不影响运行,
建议不要太执著这种事情。

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧