Python调用动态库后出现 Process finished with exit code -1073741819 (0xC0000005)

问题遇到的现象和发生背景

该程序使用FALSK作为对外暴露的接口,使用tkinter做界面。在调用时候,该DLL前面步骤都正常。但调用到某个函数时出现异常。报错0xC0000005。Python版本3.7.

问题相关代码,请勿粘贴截图
    # DLL请求参数
    inputObjJsonStr = json.dumps(inputObjJsonObj, ensure_ascii=False)
    inputData = ctypes.c_char_p()  # 请求参数
    inputData.value = inputObjJsonStr.encode("GB2312")
    # DLL响应参数
    outputData = ctypes.c_char_p()  # 输出参数
    outputData.value = "".encode("utf-8")
    pErrMsg = ctypes.c_char_p()  # 异常
    pErrMsg.value = "".encode("utf-8")
    res = pDLL.BusinessHandle(fixmedins_code, infosyscode, infosyssign, inputData, outputData, pErrMsg)

调用DLL完成后输出正常。但是过了几秒钟后程序直接终止

运行结果及报错内容

img

我的解答思路和尝试过的方法

跟着网上报错调整过,无一解决,Python直接调用正常。通过FLASK开放API调用会出现异常,初步判断FLASK框架有问题。

img

img

我想要达到的结果

程序能正常运行,如果有需要可以远程。Python有没有类似FLASK简洁的框架?

不一定是flask框架的问题,而是在flask中调用动态库可能有问题,或者动态库中没有处理好与框架的集成导致的问题,总之问题应该出现在dll中。如果有dll源码可调试查出问题。

看你的路径里是不是有中文名,或者路径不对。

(-1073741819)这个错误号其实是文件系统错误,所以要考虑自己代码的文件配置环境(比如文件是否存在)。
另外有可能是调用dll时堆栈溢出造成,判断一下是不是读取数据过大。

补充,我觉得编码格式的嫌疑最大,你把UTF-8改成latin-1试下
重点encode 这块

(-1073741819)这个错误号其实是文件系统错误,所以要考虑你的代码的文件配置环境(比如文件是否存在)。这种都是文件路径错误,要么是中文名,要么是路径下没有文件。这个错误ID就是文件错误。或者你可以断电调试,错误就会定义到你读文件的那一行。

个人感觉,可能是因为文件路径不存在,或者其他东西找不到,按照图片,在红色框出来得区域打上对勾,看看报什么错

img