如果dll里string 传给 exe里.
最后exe里的string在dtor的时候会崩溃.
听说string是采用的引用的方式来传递.
是不是因为dll里的内存不能在exe里释放
所以出现这个问题呢.
最后exe里的string在dtor的时候会崩溃.
听说string是采用的引用的方式来传递.
是不是因为dll里的内存不能在exe里释放
所以出现这个问题呢.
解决方案 »
- MFC列表框问题
- soswaidao,淋巴哥后的又一娱乐明星
- vc6.0 中 CTime 支持 2099
- 不得以再发一下:高分请教为什么实参没有名字还能编译通过
- 如何更换界面,不知能否实现?在线等
- 很郁闷的问题,烦了我一天了,大家进来帮帮忙啊,解决立刻给分!!
- 为什么pConnsql.CreateInstance("ADODB.Connection");而pRecsql.CreateInstance("ADODB.Recordset");失败呢?
- 关于MFC单文档(VC)基于CFormView的视图的应用程序,如何让应用程序框架显示实际大小
- 关于DWGdirect的问题
- new出来的数组的数据对齐问题
- 安装程序怎么把一个服务程序注册到windows服务列表中??
- 如何高效地得到屏幕可见区域,占整个屏幕的百分比?来者有分
2)对于传递出来的内存内容,最好重新复制一份。这个意思是:如果传递出来一个指针,直接使用的话,当分配者删除时,调用者在使用,那么就会出现问题。这个比较保险的方式是:调用者分配一块同样大小的内存,然后把内容给拷贝出来,不能使用A = B(A、B)同为一个的指针,这是因为这种赋值方式是按照位赋值的,当分配者删除时,同样会出现问题。
你可以在DLL再暴露一个函数,专门供EXE调用,用于释放DLL中分配的内存区域。
string 在拷贝构造函数或赋值运算时会分配内存,不是引用