c 的调用方式如下
void test(char**p, int* len)
char* p = malloc(0x1000)
int len = 0x1000
test(&p, &len)
DebugPrint("size is %d ", len)
DumpHex(p, len)
python 呼叫test
func = CDLL('path').test
functype = CFUNCTYPE(c_void, c_void_p, c_void_p)
func = functype(CDLL('path').test)
data = create_string_buffer(0x1000)
len = c_uint64(0x1000)
func(byref(c_int64(addressof(data))), byref(len)) # 如果32位机器的话data 的地址转化为c_int32
data = data[:len.value] # 将字节码重新组装。 data 本身存储的是c_array_0x1000 . 不是python 的bytes类型。
ctypes pyobjc 这种库自身做了一个桥接。 很多虽然python能访问的类型,并不是python原生的类型。
需要很细心的转化为原生类型后,就大胆的使用吧。
开源交易平台开发框架
入门Python方便使用 vn.py学习建议
1.目前中文教程大多停留在2.5的版本上,所以如果英语很差(又没有编程基础)最好从这里开始。而且目前并非所有的模块,错,是大多数 模块 都不支持3.X。
国内前景就是,你可以独立完成XXXX就牛逼。
3.X舍弃了向下兼容性,立志把Python做的尽善尽美,但是各个 模块 的更新情况不太乐观。(怎么的也得3-5年吧)
2.Python 涉及的面比较广,其实任何语言都是,可以做所有的事情,就是各自的语言特点决定这种语言做这个方面适合与否。
3.Python 适合用于快速开发,解释性语言导致了运行效率比较低,但是开发速度相对于其他语言却很高。
参考资料
https://zhidao.baidu.com/question/366176601130279212.html.百度知道[引用时间2018-3-28]
因为一些不可抗力的原因,前一段时间开发的LTS API的Python封装暂时用不上,目前证券API这边剩下相对靠谱的选择只剩恒生了,同样是准备基于C++版本的API开发Python封装。现在的一个问题是,恒生的API风格上和国内大多数其他API非常不同,他的请求操作和数据推送需要用户自己发送和接收数据包并进行解析(类CTP的API会直接帮你处理好,用户只需传入结构体指针)。题主面临两个选择:直接对恒生API进行封装,提供数据包操作的Python接口。对恒生API进行类CTP封装后,再封装为Python接口,好处是可以和之前类CTP的API通用,缺点可能会损失部分恒生API独有的功能。这个API最后同样会整合到题主的vn.py框架中,这样对于很多大型券商(中信、海通、招商等等),用户也会多一个可以用Python进行量化开发的选择。恒生的接口应用应该是最普遍的,但是用恒生接口一般都需要券商给认证文件才能使用,大多数人应该都参与不了这个项目。可以参考quantbox和wind,先在框架上统一。最好先把ctp期货和证券做出来,毕竟兴业也在用,lts也是类ctp的。恒生的接口应用应该是最普遍的,但是用恒生接口一般都需要券商给认证文件才能使用,大多数人应该都参与不了这个项目。能做到封装后python API和现有vn.py已存在的lts和ctp的接口兼容,那就极好