swig编译上期技术CTP 穿透式版本 生成jar包

上期技术 提供CTP接口连接,编译java版本
我的开源项目:https://gitee.com/gt_vv/javaCtp 有已经生成的动态库和jar包 以及对行情服务器交易服务器的一些基本实现 会持续维护,
点击进入

需要工具:swig 工具 官网下载 压缩包并解压 我用的是 3.0.12版本
ctpAPI文件:上期技术官网下载
swig编译上期技术CTP 穿透式版本 生成jar包_第1张图片解压后有各个版本 以window64 为例
swig编译上期技术CTP 穿透式版本 生成jar包_第2张图片这个文件进行解压 并自己手动创建ctp目录 和src 目录 和thosttraderapi.i文件
swig编译上期技术CTP 穿透式版本 生成jar包_第3张图片编辑刚创建的thosttraderapi.i文件

%module(directors="1") thosttradeapi 
%{ 
#include "ThostFtdcTraderApi.h"
#include "iconv.h"
%}

%typemap(out) char[ANY], char[] {
    if ($1) {
        iconv_t cd = iconv_open("utf-8", "gb2312");
        if (cd != reinterpret_cast<iconv_t>(-1)) {
            char buf[4096] = {};
            char **in = &$1;
            char *out = buf;
            size_t inlen = strlen($1), outlen = 4096;

            if (iconv(cd, in, &inlen, &out, &outlen) != static_cast<size_t>(-1))
                $result = JCALL1(NewStringUTF, jenv, (const char *)buf);
            iconv_close(cd);
        }
    }
}

%feature("director") CThostFtdcTraderSpi; 
%ignore THOST_FTDC_VTC_BankBankToFuture;
%ignore THOST_FTDC_VTC_BankFutureToBank;
%ignore THOST_FTDC_VTC_FutureBankToFuture;
%ignore THOST_FTDC_VTC_FutureFutureToBank;
%ignore THOST_FTDC_FTC_BankLaunchBankToBroker;
%ignore THOST_FTDC_FTC_BrokerLaunchBankToBroker;
%ignore THOST_FTDC_FTC_BankLaunchBrokerToBank;
%ignore THOST_FTDC_FTC_BrokerLaunchBrokerToBank;  
%feature("director") CThostFtdcTraderSpi; 
%include "ThostFtdcUserApiDataType.h"
%include "ThostFtdcUserApiStruct.h" 
%include "ThostFtdcTraderApi.h"  

接下来就是将ctp接口各个文件对应的java文件生成(属性,类名,调用关系不会发生改变,参照 上期技术的ctp开发文档可以使用)

在这里插入图片描述
cmd进入 刚解压的ctp版本 执行以下命令 , 514 警告 不用管 , 执行时间 30多秒左右

D:\ctp_java_dll_work_space\swigwin-3.0.12\swig.exe -c++ -java -package ctp.thosttraderapi -outdir src -o thosttraderapi_wrap.cpp thosttraderapi.i

会在src目录下生成对应的java文件
swig编译上期技术CTP 穿透式版本 生成jar包_第4张图片cmd进入src目录 执行javac 编译命令 编译成 jar包所需要的 .class文件
java 要配置环境变量 (1.8版本的jdk)

javac *.java

将生成的 .class文件 拷贝到ctp 下thost…的目录中swig编译上期技术CTP 穿透式版本 生成jar包_第5张图片cmd 回到之前 解压ctp版本的目录执行命令

jar cf thosttraderapi.jar ctp

生成一下三个文件 一个是 jar包 两外两个是生成动态库 dll 所需要文件
swig编译上期技术CTP 穿透式版本 生成jar包_第6张图片

你可能感兴趣的:(CTPJAVA)