前言:
此刻小伙伴们对“vs2019添加库文件”可能比较注意,同学们都需要学习一些“vs2019添加库文件”的相关资讯。那么小编在网摘上汇集了一些有关“vs2019添加库文件””的相关资讯,希望咱们能喜欢,咱们一起来了解一下吧!之前都是用MFC写通达信用DLL文件,MFC基本属于被淘汰工具,正好昨天新装VS2019,就试着用VS2019 C++动态库编写通达信用的DLL文件。操作步骤如下:
1.打开VS2019,新建一个项目,项目名称tdxDllTest,,新建项目时选择“动态链接库”,如下图:
2.在新建项目中添加通达信DLL编程规范中的文件,此例是将规范中三个文件合并成两个,操作见下图:工程项目名称右键---添加---现有项,(需先将规范中实例的文件加入项目中)
3.在PluginTCalcFunc.cpp源文件中修改代码如下图:
4.源代码:
PluginTCalcFunc.h头文件:
#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**);
//=======================================
#ifdef __cplusplus
extern "C"
{
#endif //__cplusplus
__declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun);
#ifdef __cplusplus
}
#endif //__cplusplus
#pragma pack(pop)
#endif
=======================================
PluginTCalcFunc.cpp源文件
#include "pch.h"
#include "PluginTCalcFunc.h"
/*typedef void(*pPluginFUNC)( int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)类型指针;
函数参数分别是(数据个数,输出,输入a,输入b,输入c),参数的计算是基于长度为DataLen 的float类型数组。*/
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;
}
}
void TestPlugin2(int DataLen, float* pfOUT, float* pfINa, float* pfINb, float* pfINc)
{
for (int i = 0; i < DataLen; i++)
pfOUT[i] = (pfINa[i] + pfINb[i] + pfINc[i]) / 3;
}
//用户的函数全部都放入PluginTCalcFuncInfo结构的全局数组g_CalcFuncSets中。
PluginTCalcFuncInfo g_CalcFuncSets[] =
{
{ 1,(pPluginFUNC)&MA },
{ 2,(pPluginFUNC)&TestPlugin2 },
{ 0,NULL },
};
//RegisterTdxFunc函数为注册函数
BOOL RegisterTdxFunc(PluginTCalcFuncInfo ** pFun)
{
if (*pFun == NULL)
{
(*pFun) = g_CalcFuncSets;
return TRUE;
}
return FALSE;
}
代码弄好后直接编译,然后在debug或release文件夹中找到tdxDllTest.dll文件,复制粘贴到通达信的X:\new_tdx\T0002\dlls文件夹中,并在公式管理器中绑定Dll,并新建一个测试指标公式,如下图:
至此,C++编写通达信用DLL指标测试完成。
标签: #vs2019添加库文件