import com.sun.jna.Library; import com.sun.jna.Memory; import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.ShortByReference; public class Main { public interface TdxLibrary extends Library { // 连接行情服务器 int TdxHq_Connect(String IP, short Port, String Account, String Password, byte[] Result, byte[] ErrInfo); // 断开连接 void TdxHq_Disconnect(int ConnectionID); // 获取证券数量 boolean TdxHq_GetSecurityCount(int ConnectionID, byte Market, ShortByReference Result, byte[] ErrInfo); //获取市场内某个范围内的1000支股票的股票代码 boolean TdxHq_GetSecurityList(int ConnectionID, byte Market, short Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取证券K线数据 boolean TdxHq_GetSecurityBars(int ConnectionID, byte Category, byte Market, String Zqdm, short Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取指数K线数据 boolean TdxHq_GetIndexBars(int ConnectionID, byte Category, byte Market, String Zqdm, short Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取分时数据 boolean TdxHq_GetMinuteTimeData(int ConnectionID, byte Market, String Zqdm, byte[] Result, byte[] ErrInfo); // 获取历史分时数据 boolean TdxHq_GetHistoryMinuteTimeData(int ConnectionID, byte Market, String Zqdm, int date, byte[] Result, byte[] ErrInfo); // 获取逐笔成交数据 boolean TdxHq_GetTransactionData(int ConnectionID, byte Market, String Zqdm, short Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取历史逐笔成交 boolean TdxHq_GetHistoryTransactionData(int ConnectionID, byte Market, String Zqdm, short Start, ShortByReference Count, int date, byte[] Result, byte[] ErrInfo); // 获取证券报价 boolean TdxHq_GetSecurityQuotes(int ConnectionID, byte[] Market, String[] Zqdm, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取公司信息分类 boolean TdxHq_GetCompanyInfoCategory(int ConnectionID, byte Market, String Zqdm, byte[] Result, byte[] ErrInfo); // 获取公司信息内容 boolean TdxHq_GetCompanyInfoContent(int ConnectionID, byte Market, String Zqdm, String FileName, int Start, int Length, byte[] Result, byte[] ErrInfo); // 获取除权除息信息 boolean TdxHq_GetXDXRInfo(int ConnectionID, byte[] Market, String[] Zqdm, int Count, byte[] Result, byte[] ErrInfo); // 获取财务信息 boolean TdxHq_GetFinanceInfo(int ConnectionID, byte[] Market, String[] Zqdm, int Count, byte[] Result, byte[] ErrInfo); // 获取集合竞价数据 boolean TdxHq_GetCallAuctionData(int ConnectionID, byte Market, String Zqdm, int Start, IntByReference Count, byte[] Result, byte[] ErrInfo); // 十档行情报价 boolean TdxHq_GetSecurityQuotes10(int ConnectionID, byte[] Market, String[] Zqdm, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取买卖队列 boolean TdxHq_GetBuySellQueue(int ConnectionID, byte[] Market, String[] Zqdm, int Count, byte[] Result, byte[] ErrInfo); // 获取逐笔明细成交 boolean TdxHq_GetDetailTransactionData(int ConnectionID, byte Market, String Zqdm, int Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取原始逐笔明细 boolean TdxHq_GetDetailOriginalTransactionData(int ConnectionID, byte Market, String Zqdm, int Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); // 获取逐笔委托数据 boolean TdxHq_GetDetailOrderData(int ConnectionID, byte Market, String Zqdm, int Start, ShortByReference Count, byte[] Result, byte[] ErrInfo); } public static void main(String[] args) { try { //本软件详细信息请见网站 http://tdxjy.com/ //DLL是32位的,因此必须使用jdk32位开发,才能调用DLL; //必须把TdxHQApi.dll等全部DLL复制到jdk\bin目录下,类似C:\Program Files (x86)\Java\jdk-1.8\bin; //java工程必须添加引用 jna.jar, 在 https://github.com/twall/jna 下载 jna.jar //无论用什么语言编程,都必须仔细阅读VC版内的关于DLL导出函数的功能和参数含义说明,不仔细阅读完就提出问题者因时间精力所限,恕不解答。 byte[] Result=new byte[1024*1024]; byte[] ErrInfo=new byte[256]; System.setProperty("jna.encoding", "GBK"); TdxLibrary TdxLibrary1 = (TdxLibrary)Native.loadLibrary("TdxHqApi",TdxLibrary.class); //登录 int ConnectionID=TdxLibrary1.TdxHq_Connect("110.41.2.72", (short)7709, "account", "password", Result, ErrInfo); if (ConnectionID==-1) { System.out.println(Native.toString(ErrInfo, "GBK")); return; } System.out.println(Native.toString(Result, "GBK")); //查询 TdxLibrary1.TdxHq_GetHistoryMinuteTimeData(ConnectionID, (byte) 0,"000001",20250711, Result, ErrInfo); System.out.println(Native.toString(Result, "GBK")); System.out.println(Native.toString(ErrInfo, "GBK")); //注销 TdxLibrary1.TdxHq_Disconnect(ConnectionID); System.out.println("end"); } catch(Exception e) { } } }