难道真是DLL的BUG吗

确认一键查看最优答案

本功能為VIP专享,开通VIP获取答案速率将提升10倍哦!

大家不妨试试写一个小程序,只是不断调用(我是调用2万次测试的)LoadLibrary, GetProcAddress(这个可要可不要), FreeLibrary, 然后用任务管悝器看看你的程序进程是不是内存会不断地消耗?不知哪位高人能解释一下原因这是Window的bug吗?这样调用能否控制泄漏怎么控制?

我用Window嘚系统dll测试好像没问题,这样应该是我自己的dll的问题了。首先声明我只是调用LoadLibrary, FreeLibrary, 没调用dll的函数,所以函数里是否有内存泄漏不在本討论之内。 我想问在编写dll的时候,怎样能让上层应用程序在调用时在内存里始终只保留一份资源共享

应该是你 DLL 的初始化函数里面有泄露吧?

也想知道你第二个问题的答案

检查下DllMain中有没有内存泄露

如果没有,我想那是Windows的问题我写过些网络通信程序一开始观察,也是越來越占内存但运行了相当长一段时间后,它似乎会自动释放掉一些使得内存占用率总是超不过一个上限。

LoadLibrary缺省会调用你的DLL中的入口函數(假如你没有写那就是编译器帮你自动生成的)

我的dll入口只有很简单的return 1,应该不会有内存泄漏的

我奇怪的是我不断LoadLibrary, FreeLibrary内存会慢慢消耗,但用系统的dll测试却不会难道编写dll还有什么特别的讲究吗?

不是不想做成com但是客户要求的是做成dll,而且这个bug也是在客户那边测试发现嘚

我之所以不断地测试就是想看看内存涨到一定程度后是否会自动释放,但是没有下降的迹象而且内存越耗越多,最后还当机了这吔是客户那边测试发现的。我现在奇怪的是我还没执行dll的函数就已经出现内存泄漏了,是想不透会不会是其他dll造成的,因为在我的dll里調用了客户给的一个dll但是如果不执行我的dll的函数,是不会把客户的dll加载进来的所以光是LoadLibrary, FreeLibrary的话,应该还不涉及到客户的dll

经出现内存泄漏叻是想不透,会不会是其他dll造成的因为在我的dll里调用了客户给的一个dll,但是如果不执行我的dll的函数是不会把客户的dll加载进来的,所鉯光是LoadLibrary, FreeLibrary的话应该还不涉及到客户的dll

但你只要是链到了他的DLL,在你LoadLibrary的时候他的入口函数也会被调用,你可以找找看有没有一些高级工具看看这些东东

使用VC中的Depends工具看看你的DLL都用了哪些其它的DLL,测试一下是不是别的DLL产生的内存泄露

我是在我的dll的函数里用loadliabary把客户的dll加载进来嘚如果不执行我的函数,上层程序在加载我的dll的时候是不是也链到了客户的dll,并调用了客户的dll的入口函数


我写了个和客户的dll有同样接口的dll做测试,结果没有内存泄漏说明客户的dll有问题,已经跟客户联系了让他们自己再测试他们的dll

但是我还是很奇怪,如果不调用我嘚dll的函数应该不会把客户的dll加载进来的,而事实上却加载不知道客户的dll内部做了什么手脚,不管了以后又时间再研究,结贴了多謝楼上的各位兄弟了

匿名用户不能发表回复!
}
加足够详细的日志和会在日志中使用findstr或grep大海捞针是7×24服务程序开发的基本功

感谢大神关注!我现在 在通过生成map文件和cod文件进行定位,遇到新的问题想请教您!

2、map文件里萣位到是

3、打开Channels.cod这个文件截取DoAskVideo成员函数的部分汇编代码如下:

可我的问题是,崩溃行又是对另一个类对象指针的成员函数调用 看不出來崩溃原因, 我是该追踪到WorkForTalk这个函数里面去吗  现在我虽然定位到源码第939行崩溃,可看这个地方看不出毛病呢   大神帮我看看吧

}

  LOL的玩家经常会在玩的时候遇箌各种问题最近不少LOL玩家反馈说玩LOL提示错误[87]未找到bugsplat.dll,遇到这种情况该如何解决呢?下面我们为大家提供LOL错误87未找到bugsplat.dll的解决方法一起看看吧!

  【方法一】:首先打开你安装的文件夹

  如果不行的话就先重启下再登陆,有可能是更新的系统文件数据读取错误的原因

  紸意:找到英雄联盟文件夹里的launcher.maestro.dll 无论是文件夹或者什么,都直接复制了,然后再点开英雄联盟GAME文件夹,选中GAME里面的launcher.maestro.dll 然后点粘贴.把刚刚复制的粘貼上,也就是替换掉的意思.就可以了.

  【方法二】:查找原客户端图标右键,属性选择只读,确定重启。

  以上就是关于lol中错误[87]未找到bugsplat.dll的解决方法了如果你也遇到了类似情况,不妨试试上面的两种解决方案吧!

}

我要回帖

更多关于 bug真多 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信