python通过Ctypes 模块 调用C++动态链接库,遇到的access violation reading 0x0000000000000000解决方案

问题是:通过C++ 程序生成 DLL 内部使用了STL 等模板以及指针和引用。通过ctypes 模块给python 程序调用。有时会报OSError: exception: access violation reading 0x0000000000000000
目前看是指针跑飞的问题。我在python程序中已经指定了动态链接库中调用函数的 调用约定、函数返回类型以及函数形参类型。现在可能存在的问题是,C++程序使用了大量的vector的指针与引用,
是否是内存释放问题?还是指针参数指定问题?

答:目前应该是DLL调用后堆栈的管理问题导致,如果在C++ 程序中使用了大量的vector,在C++ 程序可以靠系统自动释放,但如果动态链接库调用方不能指定释放方式,需要靠C++程序中自己主动释放。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值