首先,先下载一个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;
这里名字自己想,点主图叠加
成功了恭喜你
最后感恩末日琳晨~
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.