[求助帖] python 使用 ctypes 调用第三方DLL 报错

使用 from ctypes import * 引入后,使用如下代码:

class YB_Neusoft():
    def __init__(self, czybh, ywbh, hospitalcode, jyrc, returntype):
        self.RETURNTYPE = returntype  # 返回类型
        self.YWBH = ywbh  # 业务编号
        self.HOSPITALCODE = hospitalcode  # 医院编码
        self.CZYBH = czybh  # 操作员编号
        self.YWZQH = ''  # 业务周期号
        self.YYJYLSH = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '-' + self.HOSPITALCODE + '-' + "".join(random.sample(string.digits, k=4))  # 医院交易流水号 时间(14)+医院编号(8)+流水号(4)
        self.ZXBM = '0000'  # 中心编码
        self.JYRC=jyrc   # 交易入参
        self.LJBZ = '1'  # 联机标志
        self.DLL = cdll.LoadLibrary('C:/CRM-Manage-master/YBDLL/abcdefg.dll')

    def _NeusoftGetYWZQH(self):
        # 执行初始化 并进行签到
        initretrun = create_string_buffer(2000)
        Double = self.DLL.INIT(initretrun)  # 加载函数对象
        # print('初始化执行结果:' + str(Double))
        # print('初始化执行返回:' + str(initretrun, encoding="utf8"))
        businessoutputData = create_string_buffer(2000)  # 保存接口出参
        BusinessString = '9100' + '^' + self.HOSPITALCODE + '^' + self.CZYBH + '^^' + self.YYJYLSH + '^'+self.ZXBM +'^^'+self.LJBZ+'^'
        print(BusinessString)
        result = self.DLL.BUSINESS_HANDLE(BusinessString.encode('utf8'),businessoutputData)
        # print('签到执行结果:'+str(result))
        # print('签到执行出参:'+str(businessoutputData, encoding="utf8"))
        sss = str(businessoutputData, encoding="utf8").split('^')
        return sss[2].replace('|', '')

在pycharm 中调试运行没有任何错误。但是将项目部署到 Apache24 中时,执行这一段代码会报错。

self.YWZQH = self._NeusoftGetYWZQH() , referer: http://193.168.4.48:7888/index/ybbusiness/YbFeeCheckList File "C:\CRM-Manage-master\web\Common\Nesuftbusiness.py", line 41, in _NeusoftGetYWZQH\r, referer: http://193.168.4.48:7888/index/ybbusiness/YbFeeCheckList result = self.DLL.BUSINESS_HANDLE(BusinessString.encode('gbk'), businessoutputData)\r, referer: http://193.168.4.48:7888/index/ybbusiness/YbFeeCheckList OSError: exception: stack overflow\r, referer: http://193.168.4.48:7888/index/ybbusiness/YbFeeCheckList

 想看看有没有人知道为什么?

            ``

评论 2