Windows10 64位Python3.7调用QuickFix SocketAcceptor报参数错误
问题根因
你遇到的参数类型不匹配报错是自定义Application子类的父类初始化逻辑错误导致的,底层C++扩展无法识别你创建的myApplication实例为合法的FIX::Application类型对象,因此匹配不到对应的重载构造函数。
修复方案
1. 修正父类初始化调用
你当前myApplication类的__init__方法中super调用写法错误:
# 错误写法:super第一个参数传入了父类,导致没有正确初始化fix.Application本身 super(fix.Application,self).__init__()
将其修改为正确的子类初始化语法即可:
# Python3 通用写法 super().__init__() # 或者兼容写法 super(myApplication, self).__init__()
2. 可选逻辑修正(按需调整)
如果你的需求是实现FIX客户端,当前代码和配置存在逻辑不匹配:
SocketAcceptor是服务端使用的类,用来监听端口接受客户端连接,对应你配置里的ConnectionType=acceptor- 客户端应该使用
SocketInitiator类,同时将配置中ConnectionType改为initiator,新增SocketConnectHost、SocketConnectPort配置项指向服务端地址
验证
修改完成后重新运行代码,参数类型即可被C++层正确识别,不会再报重载函数匹配错误。
内容的提问来源于stack exchange,提问作者rd888
相关产品推荐
相关产品推荐

