• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

关于codeguard的问题

n27741 2015-08-24 10:57:33
我在用C++ BUILDER 6 维护一个老系统。最近发现一个问题,我在project->Opition->codeguard 里面开启
codeguard 功能。然后再老系统里面主窗体的Create事件中故意泄露一个内存。

char* buf = new char[100];

重新build

运行程序,退出程序。 CG 没有任何反应。

我新建一个工程project1。同样操作,CG立刻报memory leak。

我用tdump 查看了 2个程序的exe,他们都import 了 CG32.DLL

只是他们导入的方法不同。

这是老工程

Imports from CG32.DLL
_CG_DESC
__cg_handles
__cg_streams
__cg_streams_cleanup
__cg_memory_cleanup
__cg_object_cleanup
__cg_objecta_cleanup
_CG_VALIDATE
_CG_VALIDATESTRING
__cg_new
__cg_delete
__cg_newa
__cg_deletea
__cg_malloc
__cg_free
__cg_memcpy
__cg_memmove
__cg_memset
__cg_strcmp
__cg_strcpy
__cg_strlen
__cg_strstr
__cg_strtod
__cg_sprintf
__cg_vsnprintf
__cg_fopen
__cg_fclose
__cg_fwrite
__cg_mkdir
__cg_stat
__cg_time
__cg__matherr
__cg__matherrl
__cg_cos
__cg_div
__cg_sin
__cg_sqrt
__cg_atan2
__cg_pow
_cg_lstrcpyA

这是新工程
Imports from CG32.DLL
_CG_DESC
__cg_handles
__cg_streams
__cg_streams_cleanup
__cg_memory_cleanup
__cg_object_cleanup
__cg_objecta_cleanup
_CG_VALIDATE
_CG_VALIDATESTRING
__cg_delete
__cg_newa
__cg_memcpy
__cg__matherr
__cg__matherrl

不知道哪位高人处理过这个问题? 告诉我思路,非常感谢。
...全文
69 点赞 收藏 2
写回复
2 条回复
n27741 2015年08月26日
我解决了这个问题。是因为程序有一段代码自己杀自己进程造成的。 下面是这个例子: #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "tlhelp32.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { char* ch = new char[100]; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,GetCurrentProcessId()); TerminateProcess(hProcess,0); }
回复 点赞
缘中人 2015年08月25日
不怎么用codeguard 有个Eurekalog不错,c6能用。
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2562

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告