晕, 怎么一直都是CString泄漏

rotApple 2008-04-29 10:19:15


程序在我家里跑, 没事, 在公司跑, 关闭的时候CString的CStringData::Release异常报错.

我的程序界面语言都存在一个DLL里面的STRING TABLE里面, 然后在网上查, 有的人说CSTRING在DLL传的时候会内存什么什么的.

我现在也不知道到底是怎么回事???

...全文
171 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2008-04-29
  • 打赏
  • 举报
回复
貌似这帖的人气还可以... 我的另一帖就没人回答哦.
大家也顺个路帮我看一下吧... 谢谢呀!
http://topic.csdn.net/u/20080427/16/709f082e-f220-49b5-bb1b-4a8a5e3cb2a3.html?seed=2007337820
skyful123 2008-04-29
  • 打赏
  • 举报
回复
内存问题比较大
rotApple 2008-04-29
  • 打赏
  • 举报
回复
谢谢jimoguilai, 我先查查csDllName的所有引用.
Chivalry 2008-04-29
  • 打赏
  • 举报
回复
程序在我家里跑, 没事, 在公司跑, 关闭的时候CString的CStringData::Release异常报错.

有的机器可以,有的不可以,这种情况,多半是内存地址问题
Chivalry 2008-04-29
  • 打赏
  • 举报
回复
个人认为vc的CString还是比较容易出问题的,用的时候,都是用数组,然后需要借用CString方法的话,都是
char buf[200];
.....
CString str;
str = buf;
Chivalry 2008-04-29
  • 打赏
  • 举报
回复
你有没有把其他指针的值赋给csDllName,或者把他的地址付给其他指针?

地址相同的话,可能会导致出错
雨中的月儿 2008-04-29
  • 打赏
  • 举报
回复
嗯,2楼的有道理。

建议使用BSTR,最安全。不会出错误。
rotApple 2008-04-29
  • 打赏
  • 举报
回复

我查出来了. 好像是这里的错:

struct LanguageInfo
{
CString csDllName;
LANGID arrLanguages[10];
int iLanguageCount;
};

这里面的这个csDllName在~的时候CStringData::Release();报错了. 咋回事? 这个东西是全局的.
ouyh12345 2008-04-29
  • 打赏
  • 举报
回复
跨模块调用时,不要使用CString
用BSTR或原始的char *
m_nNightmire 2008-04-29
  • 打赏
  • 举报
回复
建议找一下所有CString的GetBuffer调用位置...
CString大部分问题都是因为GetBuffer传入参数错误
比如参数过小
rotApple 2008-04-29
  • 打赏
  • 举报
回复

bdoe.dll是什么东西?? 有什么用?
rotApple 2008-04-29
  • 打赏
  • 举报
回复

查到原因了!!!!
由于我那个从DLL读取字符串的类, 我实现了一个单体, 自己new自己时用的是一个静态的智能指针, 然后我在析构时跟踪, 发现智能指针先释放了. 然后轮到一些CSTRING (不知道哪些), 就一个个全错了. 我现在把这个类改成了个普通类, 就没有问题了.

另外, 用BOUNDSCHECKER检查, 有54个leaks, 全部是bdoe.dll!0x00009E9B, 其它leaks 1个,是Kernel32里面GlobalAddAtomW, 不知道是MFC的问题还是怎么回事, 反正我程序跑着很正常, 为什么会报这些呢???? 汗.

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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