1可以确定脚本版本没有问题,实验了好多版本。
2利用Python源码跟踪崩溃源是在获取Python全局变量(PyEval_GetGlobals)里面崩溃了,访问了一个框架指针为null,源码用框架指针去获取全局变量,目前不知道这个框架是指什么。
3用win32程序去调用写的c++程序完全没问题。
4有些开放Python的商业软件用Python加载这个c++库可以用,有些不可以。
5直接用Python自带的exe运行Python脚本,脚本里面加载上面说的库,是同一个地方崩溃了。
6c++库里面获取Python模块函数用的PyImport_ImportModule。
7目前怀疑所谓的框架是不是就是像c++这边这样需要一个消息转发机制,确实测试的时候崩溃的环境下线程退了,但是开一个线程一直不退还是要崩溃。
8将加载模块放到c++接口那儿直接让Python调,所有环境下都会崩溃,包括可以的商业软件调用。只有在库里面写个定时器来掉加载Python模块函数,才能在一些商业软件里面不崩溃。
总结一下就是,怀疑需要一个框架来搭载Python脚本,但是不知道这个框架是个什么,简单的建一个线程并不能达到效果。