python side :
UserApiStruct,
MdApi,
TraderApi
cpp side :
struct.h struct.cpp
_ctp_Md
_ctp_Trader
wrapper_Md.h wrapper_Md.cpp
wrapper_Trader.h wrapper_Trader.cpp
python side :
UserApiStruct,
MdApi,
TraderApi
cpp side :
struct.h struct.cpp
MdApi:_ctp_Md
TraderApi:_ctp_Trader
MdSpi:wrapper_Md.h wrapper_Md.cpp
TraderSpi:wrapper_Trader.h wrapper_Trader.cpp
python side:结构体,交易接口,行情接口
cpp side:结构体,交易Api,行情Api,交易Spi,行情Spi
#include <Python.h>
#include <iostream>
using namespace std;
int main(){
Py_Initialize();
PyObject *modulename = Py_BuildValue("s", "testpy");
PyObject *module = PyImport_Import(modulename);
PyObject *dict = PyModule_GetDict(module);
PyObject *func1 = PyDict_GetItemString(dict, "printA");
PyObject *args1 = PyTuple_New(0);
PyObject_CallObject(func1, args1);
PyObject *func2 = PyDict_GetItemString(dict, "printB");
PyObject *args2 = PyTuple_New(1);
PyTuple_SetItem(args2, 0, Py_BuildValue("s", "hello!"));
PyObject_CallObject(func2, args2);
PyObject *func3 = PyDict_GetItemString(dict, "printC");
PyObject *args3 = PyTuple_New(2);
PyTuple_SetItem(args3, 0, Py_BuildValue("i", 123));
PyTuple_SetItem(args3, 1, Py_BuildValue("s", ",456"));
PyObject_CallObject(func3, args3);
PyObject *func4 = PyDict_GetItemString(dict, "printD");
PyObject *args4 = PyTuple_New(1);
PyTuple_SetItem(args4, 0, Py_BuildValue("s", "dennis"));
PyObject *ret = PyObject_CallObject(func4, args4);
printf("%s\n", PyUnicode_AS_UNICODE(ret));
PyObject *func5 = PyDict_GetItemString(dict, "printE");
PyObject *args5 = PyTuple_New(0);
PyObject *rel = PyObject_CallObject(func5, args5);
Py_ssize_t s = PyList_Size(rel);
for (int i = 0; i < s; ++i){
printf("%i\n", PyLong_AsLong(PyList_GetItem(rel, i)));
}
Py_DECREF(args1);
Py_DECREF(args2);
Py_DECREF(args3);
Py_DECREF(args4);
Py_DECREF(args5);
Py_Finalize();
getchar();
}