logo资料库

图文手把手教你一步步用VC 2010编写通达信缠论插件(1-DLL设计入门).pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
图文手把手教你一步步用 VC++2010 编写通 达信缠论插件(1-DLL 设计入门) 按照图文提示,一步步往下走,按照说明,创建 VC++2010 工程,把 文中的代码拷贝到文中说明的位置,编译运行,绝对通过! 本篇免收下载券。后面的要收了,但是,收也收很少,顶多收你一个 下载券,我心不贪,请大家支持点儿。 本来都是玩儿的,但是,我下载别人的资料,也要下载券啊!同志们, 别骂我。 深谷老榆制作,2016.4.24
第一步、从“文件”菜单中,选择“新建”,然后选择“项目…”。 这时候弹出“新建项目”窗口,从“项目类型”窗格中选择“Win32 项目”,并填写工程名 称,自己命名,我这里是 ChanLunTdx。 点击“确定”按钮,出现下面“Win32 应用程序向导”窗口:
点击“下一步”按钮,出现“应用程序设置”窗口。
“应用程序类型”选择“DLL”,然后单击“完成”按钮。程序框架基本搭成。 第二步、双击“解决方案资源管理器”中“源文件”中的 dllmain.cpp 文件,按照下图所示 删掉无用代码:
则 dllmain.cpp 文件内容如下所示: // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "stdafx.h" BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { } return TRUE; 第三步、鼠标右键单击工程名,出现一个弹出窗口,选择“添加(D)”下“新建项(W)...”: 点击后出现“添加新项”窗口,在其中选择“头文件(.h)”,下面文件名选择“ChanLunTdx”, 单击下面“添加”按钮:
把下面代码拷贝进去: // ChanLunTdx.h : 定义 DLL 应用程序的导出函数。 // #ifndef __CHANLUNTDX_H__ #define __CHANLUNTDX_H__ //#include "PluginTCalcFunc.h" //====================================== #pragma pack(push,1) //函数(数据个数,输出,输入 a,输入 b,输入 c) typedef void(*pPluginFUNC)(int,float*,float*,float*,float*); //PluginTCalcFuncInfo 结构用来存放用户自己的函数 pCallFunc 和函数唯一标记 nFuncMark; //pCallFunc 是 typedef void(*pPluginFUNC)( int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)类型指针; //函数参数分别是(数据个数,输出,输入 a,输入 b,输入 c),参数的计算是基于长度为 DataLen 的 float 类型数组。 typedef struct tagPluginTCalcFuncInfo { unsigned short pPluginFUNC }PluginTCalcFuncInfo; nFuncMark;//函数编号 pCallFunc;//函数地址
//RegisterTdxFunc 函数为注册函数,用户的函数全部都放入 PluginTCalcFuncInfo 结构的全局 数组 g_CalcFuncSets 中。 typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**); #pragma pack(pop) //======================================= #ifdef __cplusplus extern "C" { #endif //__cplusplus __declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun); #ifdef __cplusplus } #endif //__cplusplus #endif //__TCALC_FUNC_SETS 第四步、双击“解决方案资源管理器”中“源文件”中的 ChanLunTdx.cpp 文件,把下面代 码全部拷贝进去: // ChanLunTdx.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "ChanLunTdx.h" //生成的 dll 及相关依赖 dll 请拷贝到通达信安装目录的 T0002/dlls/下面,再在公式管理器进行 绑定 //函数: EMA(X,N) //说明: 指数平滑移动平均 卖一价求指数平滑移动平均。 //用法: EMA(X,N),求 X 的 N 日指数平滑移动平均。 //算法: 若 Y=EMA(X,N) 则 Y=[2*X+(N-1)*Y']/(N+1),其中 Y'表示上一周期 Y 值。 //例如: EMA(CLOSE,30)表示求 30 日指数平滑均价 //通达信中用的时候,第一个输入参数是收盘价,第 2 个输入参数是常量,第三个输入参数 为空; 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
分享到:
收藏