您的位置:首页 > 产品设计 > UI/UE

MiniGUI应用程序使用 Ctrl+c 结束进程,发现产生core文件

2015-02-07 10:02 281 查看
在调试MiniGUI应用程序时,无意中发现使用Ctrl+c 竟然产生了core文件,这明明不符合Linux信号量中默认处理方式,经过一番痛苦的定位。发现是一个无效的资源释放产生的:

情况1:

BITMAP bmWarn;

case MSG_CLOSE:

UnloadBitmap(&bmWarn);

.......

return 0;

变量bmWarn,在作用域中没有使用,而最后调用了释放。给大家提个醒,发现类似情况,请关注资源释放是否合理!!

情况2:

LOGFONT *logfontbig32 = NULL;

......

logfontbig32 = CreateLogFont("FONT_TYPE_NAME_SCALE_TTF", "arial", "ISO8859-1",

FONT_WEIGHT_SUBPIXEL, FONT_SLANT_ROMAN, FONT_FLIP_NIL,

FONT_OTHER_NIL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,

32, 0);

......

case MSG_CLOSE:

DestroyLogFont (logfontbig32);

DestroyMainWindow (hWnd);

PostQuitMessage (hWnd);

return 0;

......

这里释放资源条件不对,正确如下:

case MSG_DESTROY:

DestroyLogFont (logfontbig32);

return 0;

在minigui中,资源释放不正确的话非常容易产生core文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐