首先,先下载一个Visual Studio 2015,安装完之后,打开它

之后点击打开文件

第三步点击文件—新建—项目

这里会看到这个界面,点箭头标注的地方

第四步:点win32项目,给这个项目起个名称,名称ChanlunTdx

第五步:确认,点下一步

第六步选择dll,选择完成

第七步

第八步:点头文件,点添加,点现有项

找到通达信的编程规范并解压,打开所解压的文件夹

双击添加通达信提供的头文件

把通达信提供的头文件名称改成:ChanLunTdx

将以下代码复制进去

  • #ifndef __PLUGIN_TCALC_FUNC
  • #define __PLUGIN_TCALC_FUNC
  • #pragma pack(push,1)
  • //函数(数据个数,输出,输入a,输入b,输入c)
  • typedef void(*pPluginFUNC)(int,float*,float*,float*,float*);
  • typedef struct tagPluginTCalcFuncInfo
  • unsigned short nFuncMark;//函数编号
  • pPluginFUNC pCallFunc;//函数地址
  • }PluginTCalcFuncInfo;
  • typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
  • //RegisterTdxFunc函数为注册函数,用户的函数全部都放入PluginTCalcFuncInfo结构的全局数组g_CalcFuncSets中。
  • typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
  • extern"C"
  • //__cplusplus
  • __declspec(dllexport)BOOL RegisterTdxFunc(PluginTCalcFuncInfo**pFun);
  • #pragma pack(pop)
  • #endif

复制下面的内容到红框后,对着截图排好版,这很重要,这一步也是最关键:

  • #ifndef __PLUGIN_TCALC_FUNC
  • #define __PLUGIN_TCALC_FUNC
  • #pragma pack(push,1)
  • //函数(数据个数,输出,输入a,输入b,输入c)
  • typedef void(*pPluginFUNC)(int,float*,float*,float*,float*);
  • typedef struct tagPluginTCalcFuncInfo
  • unsigned short nFuncMark;//函数编号
  • pPluginFUNC pCallFunc;//函数地址
  • }PluginTCalcFuncInfo;
  • typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
  • //RegisterTdxFunc函数为注册函数,用户的函数全部都放入PluginTCalcFuncInfo结构的全局数组g_CalcFuncSets中。
  • typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
  • extern"C"
  • //__cplusplus
  • __declspec(dllexport)BOOL RegisterTdxFunc(PluginTCalcFuncInfo**pFun);
  • #pragma pack(pop)
  • #endif

快速操作与重构

消除曲线错误提示后,左键点这个

将红框的全删除

删除掉之后点击这个

以下代码全部复制进去:

  • #include"stdafx.h"#include"ChanLunTdx.h"
  • void EMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)
  • float fTemp = 0.0;
  • int N = int(*pfINb);
  • pfOUT[0] = 0.0;
  • for (int i = 1;i++
  • pfOUT = (2 * pfINa + (N - 1)*pfOUT[i - 1]) / (N + 1);
  • PluginTCalcFuncInfo g_CalcFuncSets[] =
  • { 1,(pPluginFUNC)&EMA },
  • { 0,NULL },
  • //导出给TCalc的注册函数
  • BOOL RegisterTdxFunc(PluginTCalcFuncInfo**pFun)
  • if (*pFun == NULL)
  • (*pFun) = g_CalcFuncSets;
  • return TRUE;
  • return FALSE;

对着图排好版,有一个好方法,就是按删除键,删到上一行的末尾的时候再按确认键,让软件默认排

这是上半部分

从最下层朝上排版

对着图排好版,有一个好方法,就是按删除键,删到上一行的末尾的时候再按确认键,让软件默认排

这是下半部分

从最后朝前排版

点生成,点生成解决方案

删除掉无效的框框内的内容,注意看好内容,别删错

到这一步已经生成成功了!看看能不能绑定

右键点击这个项目名称,点击最后一行属性,打开文件资源管理器中的文件夹

看好路径,打开这个文件

我们的劳动成果就是这个,一定要保管好,先复制下

打开dlls文件夹,把我们的劳动成果复制进去

点dll函数,dll绑定

  • A:=TDXDLL1(2,C,5,0);
  • B:=TDXDLL1(2,C,10,0);
  • CC:=TDXDLL1(1,C,10,0);
  • A,COLORWHITE;
  • B,COLORYELLOW;
  • CC,COLORGREEN;

这里名字自己想,点主图叠加

成功了恭喜你

最后感恩末日琳晨~