欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 swig编译上期技术CTP 穿透式版本 生成jar包 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

需要工具:swig 工具 官网下载 压缩包并解压 我用的是 3.0.12版本
ctpAPI文件:上期技术官网下载
解压后有各个版本 以window64 为例
这个文件进行解压 并自己手动创建ctp目录 和src 目录 和thosttraderapi.i文件
编辑刚创建的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文件
cmd进入src目录 执行javac 编译命令 编译成 jar包所需要的 .class文件
java 要配置环境变量 (1.8版本的jdk)

javac *.java

将生成的 .class文件 拷贝到ctp 下thost…的目录中cmd 回到之前 解压ctp版本的目录执行命令

jar cf thosttraderapi.jar ctp

生成一下三个文件 一个是 jar包 两外两个是生成动态库 dll 所需要文件

总结

以上是生活随笔为你收集整理的swig编译上期技术CTP 穿透式版本 生成jar包的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。