解决方案 »
- Notepad++
- 菜鸟问题:CWnd::GetDlgItemText()的理解
- 如何用一个程序监视另一个程序是否退出
- 如何上传文件
- 已张贴愈十个外国论坛但仍未解决的CWebBrowser2问题
- 深入浅出mfc和vc技术内幕4,这两本书的区别和定位在哪里?
- 怎么得到当前使用输入法所对应的dll路径
- 关于用运算符重载来实现可利用空间表的问题
- 我是一个编程初学者我想问一下现在学什么编程语言最好,又好学又有发展前景?????
- 谁有property sheet的例子,请发一个给我,[email protected],收到给分
- windows核心编程 上的一个问题???
- 请教一个socket服务器端代码设计的问题
源头似乎是每个EXE和DLL都有各自的内存管理堆,一个堆不能释放由另一个堆管理的内存,传地址没用
没有使用指针什么的啊~是不是结构体Camera需要释放,以及全局变量Vector也需要释放啊~
我用DLL也不是很多,而且不管DLL本身是什么功能,全部强制纯C接口,不导出任何对象和类
只从你贴出的代码来看,Camera继承了CObject类,是一个MFC对象,不能跨DLL,全局Vector也不能跨DLL,可能的问题点太多,以我的水平,只能一点点删除代码看删到哪里不出问题,或者彻底根绝这类可能性规定只用纯C接口函数
申请释放内存可能在很多地方发生,例如一个vector的push_back,如果现有内存不足,就必须先申请新内存再释放旧内存,而vector是模板,在各EXE和DLL中都有自己的一份实例,因此如果一个vector在DLL中初始化却在EXE中push_back,那就有很大的可能性出问题。同理,你的int ConnectChannel(string _ipAdress)导出函数使用了std::string容器,以我的水平不能判断这种情况会不会出问题,所以我写这种代码的时候只传char*指针不会传std::string容器。
只从你贴出的代码来看,Camera继承了CObject类,是一个MFC对象,不能跨DLL,全局Vector也不能跨DLL,可能的问题点太多,以我的水平,只能一点点删除代码看删到哪里不出问题,或者彻底根绝这类可能性规定只用纯C接口函数
申请释放内存可能在很多地方发生,例如一个vector的push_back,如果现有内存不足,就必须先申请新内存再释放旧内存,而vector是模板,在各EXE和DLL中都有自己的一份实例,因此如果一个vector在DLL中初始化却在EXE中push_back,那就有很大的可能性出问题。同理,你的int ConnectChannel(string _ipAdress)导出函数使用了std::string容器,以我的水平不能判断这种情况会不会出问题,所以我写这种代码的时候只传char*指针不会传std::string容器。问题以解决~感谢各位~