posts - 0,comments - 0,trackbacks - 0
        IJL 是据我所知最好用的 JPG 编解码库,速度一流、操作简单。
        但是我发现它的版本1.5却有资源泄露问题,较早的1.0反而没有,遍寻网上资料,一直没有找到相关资料,我想也许是我的使用有问题,特抛一砖,盼引得玉来:

 JPEG_CORE_PROPERTIES prop = { NULL };

 // 初始化
 if (IJL_OK != ijlInit(&prop))
 {
    return FALSE;
 }
 
 // 读参数
 prop.JPGBytes           = pJPG;
 prop.JPGSizeBytes    = lJPGSize;
 
 if (IJL_OK != ijlRead(&prop, IJL_JBUFF_READPARAMS))
 {
      ijlFree(&prop);
      return FALSE;
 }

 pijlFree(&prop);
 return NULL;

        以上这段代码是从 JPG Buffer 解码到RGB Buffer 的代码的初始部分,实在看不出有什么地方需要修正,和 IJL 自己的 DEMO 也没什么差别;可是只要重复调用,就会发现它会导致内存泄露,虽然很小,在我的机器上,大概每 1000 次泄露 100K,如果你的程序需要 24*7*365 地运行,就会导致问题了;

        我的解决办法是:动态加载,定时卸载;只要 FreeLibrary,泄露的内存就会回来,不知道这能否证明是 IJL 内部有泄露?
        希望有此经验的 DX 指点。

posted on 2005-09-14 00:43 dot.cheng 阅读(423) 评论(0)  编辑 收藏 引用 所属分类: Win32技术
只有注册用户登录后才能发表评论。