上一篇文章介绍了DLL文件的绑定,本文简单说说如何编写DLL文件。DLL编程要求略高,需要懂一些编程语言。本文以MFC为例,需要一点C语言基础。这个例子比较简单。
通信DLL的编译第一步是搭建框架,即处理与通信软件的接口;可以从官网的帮助页面下载《通达信DLL函数编程规范》,里面有WORD的简要说明和一个比较老的例子。根据说明和实施例,
建立一个框架;要写代码,只需要根据需要在框架内添加功能代码即可。
我们以Visual Studio2017 MFC为例,写一个简单的DLL实例。VS2017可以通过网络搜索下载最新版本。这个软件需要10G的空间。其实安装的内容大小不一样,所以必须安装MFC组件。
这里不介绍软件安装。以此为例。
打开VS2017,文件——,新建一个——项目,弹出如下窗口。根据图填写。可以自定义项目名称,然后在弹出的窗口中确认。新项目完成了。
新项目
新项目(MFC DLL)
完成新项目
打开新项目中的任何文件。在这里打开Dll_Demo.cpp,然后点击下图打开项目根目录。
打开文件位置
将《通达信DLL函数编程规范》中的头文件PluginTCalcFunc.h复制粘贴到项目根目录中。
编程规范头文件
粘贴头文件
将PluginTCalcFunc.h头文件添加到项目中。如下图,在步骤中点击已有项目后,在弹出窗口中选择头文件PluginTCalcFunc.h并确认添加。
添加资源
添加头文件
用记事本打开DLL编程规范中的TCalcFuncSets.h头文件,将下面的代码复制到PluginTCalcFunc.h头文件的图标位置。
#ifdef __cplusplusextern 'C'{#endif //__cplusplus__declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun);#ifdef __cplusplus}#endif //__cplusplus
头文件粘贴代码
如上图2所示,将鼠标移动到第20条红色波浪线处右键弹出窗口,选择第一条线进行快速操作和重建,然后点击第一条线创建CPP文件,如下图所示:
创建CPP文件
Cpp文件
打开《通达信DLL函数编程规范》中的TCalcFuncSets.cpp文件,将以下代码复制到新建的cpp文件中,注意语句对齐:
//请将生成的dll和相关的依赖dll复制到通达信安装目录下的t 0002/dll/中,然后绑定Void Test Plugin1 (int datalen,float * pfout,float * pfina,float * pfinb,float * pfinc){ for(int I=0;我单击生成菜单,如下所示。
框架的完成
设置项目属性,然后重新编译以生成dll的发布版本。
项目属性
生成Release版本
框架完成后,以后要编辑新的功能,只需要在PluginTCalcFunc.cpp中添加新的功能函数代码,并加入到g_CalcFuncSets[]数组,下面举例,把第一个函数更改为求取平均值,
等下在通达信画平均线。
把第一个函数全部删除或修改为如下代码,同时修改加载函数那里第一个的名称,改为MA(如下图):
void MA(int DataLen, float* pfOUT, float* pfINa, float* pfINb, float* pfINc){//参数1传入收盘价;参数2传入均线周期int N=int(*pfINb);float sum;for (int i=N - 1; i DataLen; i++){sum=0;for (int j=0; j N; j++)sum=sum + pfINa[i - j];pfOUT[i]=sum/N;}}
MA函数
编译通过,若有问题请检查是否按步骤没有错漏,如下图,在提示的路径文件夹中找到Dll_Demo.dll文件,复制到通达信安装路径下的\T0002\dlls,然后按上一篇文章绑定该DLL到第一号DLL。
绑定DLL
在通达信公式管理器中,新建如下图指标,就是调用dll画均线,同一个函数给不同均线周期即可画出不同的均线。
通达信tn6指标公式
测试公式通过后,主图调用该指标,成功画出三条均线
DLL画均线
这个过程说起来很复杂,明白了就很简单,以后要做的就是在框架内编辑不同的函数代码,根据个人C语言水平,编辑不同功能的股票函数。
过程中如有遗漏,可留言讨论,有其他更好的方法也请指正。
标题:通达信dll编写高级教程(通达信dll函数编程规范)
链接:https://www.52hkw.com/news/rj/71439.html
版权:文章转载自网络,如有侵权,请联系删除!