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. Linq 与 Lambda 简单使用

    //Lambda表达式详解 //int //List<int> numbers = new List<int> {1,2,3,4,5,6,7,8,9 }; //var n = ...

  2. esper(4-5)- Context 条件

    条件主要包含:Filter,Pattern,Crontab以及Time Period Filter主要就是对属性值的过滤,比如: create context NewUser partition by ...

  3. oracle 备份恢复篇(五)---rman 剩下控制文件和spfile

    一,环境准备 ❤ 拥有全量备份文件

  4. 剑指offer第3题:从尾到头打印链表

    方法一:采用栈来存储,用ArrayList保存.注意题目给出的输出结果是ArrayList import java.util.ArrayList; import java.util.Stack; pu ...

  5. 实现Docker跨主机间的容器网络联通

    Server1(Server) 192.168.81.58 内核版本 3.10.0-123.el7.x86_64 Docker版本 1.12.6Server2(Agent)  192.168.81.5 ...

  6. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  7. git使用问题及解决方法

    1. 设置pull默认rebasegit config --global pull.rebase true 2. 问题解决:Unlink of file '.git/objects/pack/pack ...

  8. 每日一问:Python生成器和迭代器,with上下文管理工具

    1.生成器: 1.1 起源: 如果列表中有一万个元素,我们只想要访问前面几个元素,对其进行相关操作,通过for循环方式效率太低,并且后面的元素会浪费内存,还会受到内存限制,所以产生生成器来解决这个问题 ...

  9. MYSQL系列-Mysql存储引擎选择

    MYSQL系列-Mysql存储引擎选择 //查看当前数据库支持的存储引擎 show engines \G; 创建表的时候可以通过engine=MyISAM指定存储引擎 MyISAM: .MYISAM不 ...

  10. Tomcat 启动很慢?

    Tomcat 8启动很慢,在启动中, 发现加载如下类时很慢: org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 原因 ...