Python 板


LINE

※ 引述《sbrhsieh (偶尔想摆烂一下)》之铭言: : ※ 引述《cobrasgo (体重突破所有均线)》之铭言: : : 小弟目前在写程式呼叫期货商的API : : 但是碰到了问题 : : 程式如下 : : import ctypes : : from ctypes import * : : import traceback : : class qyAPI: : : [略] : : def _apiInit(self): : : try: : : self._qyAPI = windll.LoadLibrary(self._qyDllPath) : : self._SKOrderLib_Initialize = self._qyAPI.SKOrderLib_Initialize : : self._RegisterOnOpenInterestCallBack = self._qyAPI.RegisterOnOpenInterestCallBack : : #initialization : : ret = self._SKOrderLib_Initialize(self._account, self._passwd) : : print "init result is ", ret : : CMPFUNC = CFUNCTYPE(c_int, POINTER(c_char_p)) : : cb = CMPFUNC(self._oiCallback) : : #register a callback to get open interest status : : ret = self._RegisterOnOpenInterestCallBack(addressof(cb)) : : print "oi result is ", ret : : except: : : traceback.print_exc() : 如果可以的话,请提供 RegisterOnOpenInterestCallBack 的 prototype。 : 先假设它的 prototype 大约如下(由你提供的码来看): : int RegisterOnOpenInterestCallBack( : int (__cdecl *callback)(char**) : ); : self._RegisterOnOpenInterestCallBack = self._qyAPI.RegisterOnOpenInterestCallBack; : CMPFUNC = CFUNCTYPE(c_int, POINTER(c_char_p)) : self._RegisterOnOpenInterestCallBack.argtypes = (CMPFUNC,) : self._RegisterOnOpenInterestCallBack.restype = c_int : cb = CMPFUNC(self._oiCallback) : ret = self._RegisterOnOpenInterestCallBack(cb) : 但是下面的 call-back function implementation 是错的,应该要 return 整数值。 说明文件在此 http://www.badongo.com/file/25005330 它还有附Vc++的范例程式 不过我不会c++囧 程式如下 http://www.badongo.com/file/25005463 我节录一下 ================================ int RegisterOnOpenInterestCallBack( long lCallBackFunction) 说明: 注册一个 Callback function,当有呼叫 GetOpenInterest,即会透过此函式回传帐 号资讯。 函式宣告方式如下: void __stdcall OnOpenInterest( BSTR bstrData); 回传的字串内容,以「,」分隔每一个栏位 传入值: lCallBackFunction 将 Callback 函式位址转成 long 的表示方式,传入Library内, 完成注册程序。 ================================= 这边我就看不太懂应该要怎麽对应到ctype了 麻烦再指点一下 谢谢 : : def _oiCallback(self, returnString): : : print "_oiCallback start" : : print returnString : : print "_oiCallback end" : : qyAPI() : : raw_input() : : ================= : : 呼叫RegisterOnOpenInterestCallBack这个function,需要传一个callback function : : 但是我这样写似乎是有问题的 : : callback function并没有进去 : : 请问我要register callback function的话 : : 要怎麽写呢? : 要先确定在测试时,程式已经进行到会使用你注册的 call-back function 的阶段。 : 另外,请看一下 Python 官网上 ctypes 文件的 callback function 教学。 : http://docs.python.org/release/2.5.4/lib/ctypes-callback-functions.html : qsort: : http://msdn.microsoft.com/zh-tw/library/zes7xw0h.aspx --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.51.128 ※ 编辑: cobrasgo 来自: 220.130.51.128 (01/25 21:53)
1F:→ cobrasgo:其实c++的测试程式我有试过,不过build不起来,好像要 01/25 21:54
2F:→ cobrasgo:mfc的什麽东东,所以就放弃了… 01/25 21:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP