清除所有变量崩溃matlab,清算dll记忆?
13个视图(30天)
显示旧的评论
我使用一个第三方通过墨西哥人接口dll。打开dll文件,并返回一个句柄打开文件。文件句柄是一个指针,它的值我通过Matlab。进行dll调用时,我通过指针值回墨西哥人文件,它会把文件句柄类型,然后使用的dll。
也有关闭方法文件。在Matlab的指针值被放置在一个类(指针对象)和删除方法。指针对象被删除时,调用dll(通过墨西哥人界面)关闭该文件。
事情似乎正常工作,除非我运行“清除所有”然后Matlab崩溃。
一些需要注意的地方:
- 多个对象的指针对象作为财产
- 只有一个指针对象持有的指针值
- 根对象,拥有其他对象,并不持有对象属性的指针
- 删除根(当没有其他变量存在于工作区),这将删除其他对象,不会导致系统崩溃
- 如果我在墨西哥人文件重新编译,那么清晰的根对象,系统崩溃
在我这最后几个点似乎表明,事故来自Matlab清算dll的内存,然后我传递一个过时的文件句柄的指针。任何意义吗?如果是这样的话,我怎么解决它?
谢谢你,吉姆。