目前上期技术CTP系统提供的API版本是C++版本
SWIG是一个能将C/C++接口转换为其他语言的工具,目前可以支持Python,Java,R等语言。
本文主要介绍Windows 32/64位平台下利用Swig工具将CTP C++接口API转换为Java可调用的接口。
1、从CTP官网下载最新API包,包中包含32位和64位。API文件包清单:
2、下载安装Swig软件:
3、在API文件包中创建thostapi.i 和various.i文件,thostapi.i是一个接口文件,用于告诉swig为哪些类和方法创建接口
various.i是用于将C++接口中的数组参数转换为java 的Array的工具类
%module(directors="1") thosttraderapi%include "various.i"
%apply char **STRING_ARRAY { char *ppInstrumentID[] }%{
#include"ThostFtdcMdApi.h"#include"ThostFtdcTraderApi.h"
%}%feature("director") CThostFtdcMdSpi;%include "ThostFtdcUserApiDataType.h"
%include "ThostFtdcUserApiStruct.h"
%include "ThostFtdcMdApi.h"
%feature("director") CThostFtdcTraderSpi;%include "ThostFtdcTraderApi.h"
4、生成java接口:
在当前文件夹创建src/ctp文件夹用于放置生成的java文件
..\..\swigwin-2.0.11\swig.exe -c++ -java -package ctp.thosttraderapi -outdir src -o thosttraderapi_wrap.cpp thostapi.i
运行完成之后,可在当前文件夹中看到用于包装原来C++接口的文件: