using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text; namespace demo
{
class Program
{
static void Main(string[] args)
{
//DLL是32位的,因此必须把C#工程生成的目标平台从Any CPU改为X86,才能调用DLL;
//必须把Trade.dll等4个DLL复制到Debug或Release工程目录下; StringBuilder ErrInfo=new StringBuilder(256);
StringBuilder Result = new StringBuilder(1024*1024); GetEdition(Result);//获取交易DLL版本
Console.WriteLine(Result); OpenTdx();//打开通达信
int ClientID = Logon("119.145.12.70", 443, "2.20", "1111", "1111", string.Empty, ErrInfo);//登录
if (ClientID==-1)
{
Console.WriteLine(ErrInfo);
return;
} SendOrder(ClientID, 0, 0, "A000001", "601988", 2.5, 100, Result, ErrInfo);//下单
Console.WriteLine("下单结果: {0}", Result); GetQuote(ClientID, "601988", Result, ErrInfo);//查询五档报价
if (ErrInfo.ToString() != string.Empty)
{
Console.WriteLine(ErrInfo.ToString());
return;
}
Console.WriteLine("行情结果: {0}", Result); QueryData(ClientID, 0, Result, ErrInfo);//查询资金
if (ErrInfo.ToString()!=string.Empty)
{
Console.WriteLine(ErrInfo.ToString());
return;
}
Console.WriteLine("查询结果: {0}", Result); //批量查询多个证券的五档报价
string[] Zqdm=new string[]{"600030","600031"};
string[] Results = new string[Zqdm.Length];
string[] ErrInfos = new string[Zqdm.Length]; IntPtr[] ResultPtr = new IntPtr[Zqdm.Length];
IntPtr[] ErrInfoPtr = new IntPtr[Zqdm.Length]; for (int i = 0; i < Zqdm.Length; i++)
{
ResultPtr[i] = Marshal.AllocHGlobal(1024 * 1024);
ErrInfoPtr[i] = Marshal.AllocHGlobal(256);
} GetQuotes(ClientID, Zqdm, Zqdm.Length, ResultPtr, ErrInfoPtr); for (int i = 0; i < Zqdm.Length; i++)
{
Results[i] =Marshal.PtrToStringAnsi(ResultPtr[i]);
ErrInfos[i] = Marshal.PtrToStringAnsi(ErrInfoPtr[i]); Marshal.FreeHGlobal(ResultPtr[i]);
Marshal.FreeHGlobal(ErrInfoPtr[i]);
} Logoff(ClientID);//注销
CloseTdx();//关闭通达信 Console.ReadLine();
} [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void OpenTdx(); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void CloseTdx(); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern int Logon(string IP, short Port, string Version, string AccountNo, string JyPassword, string TxPassword, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void Logoff(int ClientID); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void QueryData(int ClientID, int Category, StringBuilder Result, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void SendOrder(int ClientID, int Category, int PriceType, string Gddm, string Zqdm, float Price, int Quantity, StringBuilder Result, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void CancelOrder(int ClientID, string hth, StringBuilder Result, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void GetQuote(int ClientID, string Zqdm, StringBuilder Result, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void GetEdition(StringBuilder Result); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void QueryHistoryData(int ClientID, int Category, string StartDate, string EndDate, StringBuilder Result, StringBuilder ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void QueryDatas(int ClientID, int[] Category, int Count, IntPtr[] Result, IntPtr[] ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void SendOrders(int ClientID, int[] Category, int[] PriceType, string[] Gddm, string[] Zqdm, float[] Price, int[] Quantity, int Count, IntPtr[] Result, IntPtr[] ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void CancelOrders(int ClientID, string[] hth, int Count, IntPtr[] Result, IntPtr[] ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void GetQuotes(int ClientID, string[] Zqdm, int Count, IntPtr[] Result, IntPtr[] ErrInfo); [DllImport("trade.dll", CharSet = CharSet.Ansi)]
public static extern void Repay(int ClientID, string Amount, StringBuilder Result, StringBuilder ErrInfo); }
}

t d x 示例z的更多相关文章

  1. protocol buffers的使用示例[z]

    [http://blog.csdn.net/zhu_xun/article/details/19397081] protocol buffers的使用示例 如果不了解protocol buffers, ...

  2. EasyHook远注简单监控示例 z

    http://www.csdn 123.com/html/itweb/20130827/83559_83558_83544.htm 免费开源库EasyHook(inline hook),下面是下载地址 ...

  3. spring与disruptor集成的简单示例[z]

    [z]https://www.jb51.net/article/135475.htm disruptor不过多介绍了,描述下当前的业务场景,两个应用A,B,应用 A 向应用 B 传递数据 . 数据传送 ...

  4. SQL函数返回表的示例-Z

    create function [dbo].[GetOperateCustGroup] ( ), ) ) returns @TempTable table (MaxPrice float,MinPri ...

  5. Programming Erlang 学习笔记(一)

    入门 启动Shell 在cmd中输入命令”erl”,百分号(%)表示一个注释的开始,从百分号开始到这行结束的所有文本都被看做是注释. 一个完整的命令需要以一个句点和一个回车结束. 退出erlang的命 ...

  6. 原创:vsphere概念深入系列三:vSphere命令行管理

    假设无法近距离接触物理主机,只能远程命令行管理,. 以下命令行可以起到点作用. 首先需要安装vSphere CLI工具. 启动后界面: 1.查看datastore内容 所有命令行工具都可以加上-ser ...

  7. NOIP练习赛题目4

    肥得更高 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 自2009年以来,A.B站的历史就已经步入了农业变革的黎明期.在两站的 ...

  8. Linux系统中使用netcat命令的奇技淫巧

    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的 ...

  9. matlab 常用函数(数学建模-复习)

    常用函数 fscanf(fid, '%c', inf) -> 直接读取整个文件, 因为inf表示无穷 strtrim char(num): 将num转为ASCII字符 strtok(conten ...

随机推荐

  1. Windows 安装Angular CLI

    1.安装nvm npm cnpm nrm(onenote笔记上有记录) 参考:https://blog.csdn.net/tyro_java/article/details/51232458 提示:如 ...

  2. Hibernate Restrictions的运算符

    HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrictio ...

  3. 【DP】+【贪心】【前缀和】洛谷P2893 [USACO08FEB]修路Making the Grade 题解

        正常的没想到的DP和玄学贪心. 题目描述 A straight dirt road connects two fields on FJ's farm, but it changes eleva ...

  4. Python 实现 ZoomEye API SDK

    版权声明:未经作者授权,禁止转载! ZoomEye想必大家都很熟悉,自从官方开放了API,网上各种版本的SDK乱飞.今天我也来发一个自己写的. 首先我们从https://github.com/SEC0 ...

  5. Mercurial stuck “waiting for lock”, tortoisehg pull版本卡住在等待 解决办法

    最近使用hg的时候,拖取版本一直卡住不动.报错类似waiting for lock on working directory of xxxx held by ''. 原本以为是网络不好或者hg安装有问 ...

  6. Python 时间格式转换

    Python time, datetime模块常用方法 1.使用time模块,获取当前时间戳~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~import timetime.time( ...

  7. vm12下Centos6的javaweb环境搭建

    配置linux的javaweb环境之前: 1.在windows安装xshell(非必需,但是推荐) 2.在linux安装Linux与windows文件传输工具RZSZ[root@192 ~]# yum ...

  8. Python学习 day05

    数据类型划分 数据类型可分为:可变数据类型,不可变数据类型 不可变数据类型:bool.int.str.元祖         --  不可变数据类型又称为可哈希的 可变数据类型:list.dict.se ...

  9. js 替换中间四位手机号为 *

    replace(/(\d{})\d{}(\d{})/, '$1****$2')

  10. 理解fig,ax = plt.subplots()

    fig = plt.figure() ax = fig.add_subplot(1,1,1) fig, ax = plt.subplots(1,3),其中参数1和3分别代表子图的行数和列数,一共有 1 ...