[原创]最标准最简洁的通达信DLL股票插件开发流程
时间:2021.03.09
创作:欧阳法
一、[序言]
2015年开始, 中国股市大涨, 号称突破10000点, 我也信了. 通信达股票软件去年开始支持加载外部DLL文件并执行. 这个是一个非常好的开放. 也给广大技术指标股民带来的便利. 作为09年的股民, 不跟上这种技术潮流, 是不行的. 因此这几天索性折腾一番, 发现网络上公布的文章, 要么是技术漏洞百出, 要么是排版非常混乱, 为了改变这种现状, 我有必写出一篇干净整洁的版本.
二、[阅读体]
只合适具有C/C++编程经验的技术指标股民阅读, 如果你看不懂大部分的内容, 请补习一下Windows相关编程理论.
三、[工具准备]
1> 安装一款由通达信定制的股票软件: 比如我的是: 国海证券理财服务终端
2> 安装开发工具: Microsoft Visual Studio 2010版本以上.
四、[开始开发支持通达信调用的DLL文件]
1> 首先从help.tdx/book.asp下载“通达信DLL函数编程规范.rar”并解压提取PluginTCalcFunc.h头文件出来. 这个文件包含跟通达信股票软件交互的关键代码.
2> 启动Microsoft Visual Studio 2010开发工具从菜单选择 “新建”->“项目”->"Visual C++"->"MFC"->"MFC DLL"并输入项目名称:TDXPlugin 然后在弹出的"MFC DLL向导"对话框中选择DLL类型为"使用共享MFC DLL的规则DLL".
3> 配置刚刚创建好的TDXPlugin项目属性(从菜单选择 "项目"->"TDXPlugin属性"->"常规")
   3.1 >输出目录: C:\zd_ghzq\T0002\dlls  备注: 这个是通达信股票软件的安装目录, 视你的当前环境来填写. 当你进入安装目录的时候, 发现没有dlls这个文件夹时, 你可以自己创建.
   3.2 >MFC的使用: 在静态库中使用MFC
4> 在刚刚创建好的TDXPlugin项目中添加之前提取出来的PluginTCalcFunc.h头文件.
五、[根据通达信的规范编写代码]
1> 在TDXPlugin.cpp文件添加如下代码(注意: TDXPlugin.cpp原有的代码不要删除):
// TDXPlugin1函数是你自己编写的函数, 是跟通信达股票软件交互的函数.
// 通信达股票软件会调用你这个函数并传递你想要的股票数据给你.(备注: 如何调用这个函数, 后面我会讲解)
VoidTDXPlugin1(intDataLen,float*pfOUT,float*pfINa,float*pfINb,float*pfINc)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//这里添加你自己的股票分析代码(后面会有详细讲解)    <<这部分是否可用“七、”数据?>>
}
//g_CalcFuncSets全局结构,存储你自己编写好的函数,比如TDXPlugin1函数
PluginTCalcFuncInfog_CalcFuncSets[]=
{
{1,(pPluginFUNC)&TDXPlugin1},
{0,NULL},
};
// 该函数为导出函数,给通信达股票软件调用并初始化
BOOLRegisterTdxFunc(PluginTCalcFuncInfo**pFun)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
If(中文写代码软件*pFun==NULL)
{
(*pFun)=g_CalcFuncSets;
return TRUE;
}
return FALSE;
}
2> 在TXDPlugin.def文件设置函数RegisterTdxFunc为导出函数.
;TXDPlugin.def:声明DLL的模块参数。
LIBRARY
EXPORTS