社区
C++ 语言
帖子详情
C++ dll全局指针变量怎么释放内存,什么时候释放内存
Sephoenix
2009-09-01 11:06:41
rt,C++ dll全局指针变量怎么释放内存,什么时候释放内存?
网上有说用智能指针来管理内存,可行吗?怎么做?
...全文
968
13
打赏
收藏
C++ dll全局指针变量怎么释放内存,什么时候释放内存
rt,C++ dll全局指针变量怎么释放内存,什么时候释放内存? 网上有说用智能指针来管理内存,可行吗?怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
healer_kx
2009-09-01
打赏
举报
回复
全局的,你可以不释放,如果只是内存而已。
mengde007
2009-09-01
打赏
举报
回复
智能指针最好别用,防止传递时生存期出现错误;最好自己写个计数器;或者用COM里面的IUnknown接口;
neohope
2009-09-01
打赏
举报
回复
卸载后,就释放啦
Gary@Tokyo
2009-09-01
打赏
举报
回复
DLL中释放,没有考虑过这个问题,看看
不过智能指针确实可以,看看高手的其他方法
编程-鸟人-_--
2009-09-01
打赏
举报
回复
既然是dll,就要处理引用计数问题。当计数为0的时候,释放,就像COM。
Sephoenix
2009-09-01
打赏
举报
回复
不管怎么说还是要谢谢各位的回答。我第一次写dll,写的乱糟糟的。
Sephoenix
2009-09-01
打赏
举报
回复
糊里糊涂改好了
我写的是mfc dll
原来我把指针放在类里面,然后再类里面的多个函数内用到这个指针,在c#中调用这些函数老是报各种各样的错。
今天把那些变量全写到类外面去了,所有要用的函数也写到外面去。然后,就好了。
为什么?
难道我类里面的变量,类的函数还不能调用吗?
donkey301
2009-09-01
打赏
举报
回复
我觉得最好还是不要用全局指针。
我看你有戏
2009-09-01
打赏
举报
回复
dllmain里面有个标志的吧,如果dll被卸载的时候,会收到这个标志的,你在那里面delete好了
Sephoenix
2009-09-01
打赏
举报
回复
[Quote=引用 6 楼 acrobatyuer 的回复:]
既然是全局的干嘛要释放呢!不然定义全局不就没有意义了吗?
[/Quote]
其实我也不知道,只是调试的时候发现释放掉内存会好一点。
我是写的c++的dll(主要是做些音乐播放、音乐处理之类的事情),然后在c#里调用,如果不释放就完全错误,我用计时器释放内存,还是会在放完歌的时候出现错误。
我也只是猜测是因为内存出现的错误,也可能是其他方面。不过肯定是全局指针变量这里出现了问题
taodm
2009-09-01
打赏
举报
回复
建议去windows版问,那边对这个话题比较清楚。
dll入口函数里有退出处理机制,应该加在那儿。
acrobatyuer
2009-09-01
打赏
举报
回复
既然是全局的干嘛要释放呢!不然定义全局不就没有意义了吗?
bfzhao
2009-09-01
打赏
举报
回复
1
全局变量,无论是什么,都有C运行库负责初始化和释放。但是由于这个变量的顺序是不确定的,不要依赖于这样的机制。在dll中也是如此,但是发生在加载dll之后,进入dllmain之前。
至于智能指针,不是简单地学习其语法,而是了解基于RAII的资源管理机制。建议google "C++ in action",有专门一章论述
C++
导出和使用动态库
DLL
(涉及
全局
变量
)
C++
导出和使用动态库
DLL
(涉及
全局
变量
)
C++
全局
变量
被自身文件/项目内其他文件/动态链接库(
DLL
)之外文件使用
全局
变量
的使用一、
全局
变量
的定义和基础使用二、
全局
变量
被其它文件使用三、
全局
变量
在动态链接库中定义,被外部文件使用 一、
全局
变量
的定义和基础使用
全局
变量
一般定义在一个.cpp文件的头部, 供所在文件乃至其它文件共享使用,供其它文件使用时,不能声明为静态static。 示例1: Test1.cpp #inclue <stdio.h> char cTest1[32] = "Hello World!\n"; char cTest2[32] = "Hello My World!\n"; int
C++
全局
变量
的初始化过程
全局
变量
在main()前完成初始化(调用构造函数) 在调用构造函数前,
全局
变量
已分配空间,
内存
全0 多个
全局
变量
的初始化,按照代码编译的顺序 注意:
全局
变量
被访问前可能它还没有调用构造函数初始化。 如果一个项目中,多个
dll
都用到一个
全局
变量
在共同的lib中,则每个
dll
都有一个独立的
全局
变量
(地址不同),每个
全局
变量
会初始化。 如下代码,A里面访问了
全局
变量
g_b, 改变
全局
变量
g_a...
全局
变量
内存
莫名被破坏的解决之路
c++
中
全局
变量
是先于main函数初始化的而且
全局
变量
的初始化顺序未知,由于这个特点的的原因。
全局
变量
内存
别破坏的问题比较难以查找,首先
内存
被破坏 大部分情况是因为别的
变量
且这个
变量
含有
指针
,出现了
内存
越界,覆盖了后面
变量
内存
空间,从而使后面的
变量
被破坏。顺着这个思路我就开始了bug定位之路。 1查看别破坏的
全局
变量
地址对应的
内存
,发现此
变量
初始化后是正常值,但是运行到main函数的开头时发现他...
C++
指针
数组
内存
释放
尊重原创,原文出处:http://blog.163.com/toplcx@yeah/blog/static/926673832009751923282/ 和其它
变量
一样,
指针
是基本的
变量
,所不同的是
指针
包含一个实际的数据,该数据代表一个可以找到实际信息的
内存
地址。这是一个非常重要的概念。许多程序和思想依靠
指针
作为他们设计的基础。 开始 怎样定义一个
指针
呢?除了你需要
C++ 语言
64,281
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章