通过ctypes为返回到python的对象释放内存
发布时间:2020-05-23 15:51:33 所属栏目:Python 来源:互联网
导读:我正在使用ctypes将MyDll中的c函数扩展为python.from ctypes import cdll libX = cdll.LoadLibrary(d:MyTestProjectdebugMyDll.dll) 进一步在.py文件中我有一个类,其方法通过ctypes调用MyDll中的函数.Class MyTestClass:
|
我正在使用ctypes将MyDll中的c函数扩展为python.
进一步在.py文件中我有一个类,其方法通过ctypes调用MyDll中的函数.
相应的c函数MyTestClassInDLL_new已在MyDll中定义为 –
注意我使用new来在我的vc dll中实例化这个对象并返回指向它的指针.我在.py文件中将此函数的restype设置为ctypes.c_void_p. 我执行的脚本包含以下内容 –
这很好用.我在这里获得的testob进一步用于调用其内部从MyDll调用c函数的方法. 但是,该对象是使用MyDll中的new创建的,并通过MyTestClassInDLL_new()函数返回.这个物体是如何被摧毁的?在某个地方我需要使用delete pTestObject,以便调用它的析构函数来执行清理并释放内存. 最佳答案 我通常通过添加一个extern destroy对象函数来处理这个问题,我可以将指针传回并删除它.CPP:
H:
潘岳: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
