通达信DLL插件支持字符串前文已经简单描述,这次详细描述具体代码。
通达信公式数据使用是浮点数,没有字符串类型,对于字符串的支持是通过函数来实现,字符串函数会在内部生成字符串并返回浮点数,可以这样认为,这个浮点数就是字符串的句柄,根据这个句柄可以获取字符串的内容。具体代码
初始化句柄到字符串的转换函数,
void Init()
{
char szFullPath[] = "c:\mytdx\tcalc.dll";
HANDLE h = LoadLibrary(szFullPath);
g_funGetVarName = GetProcAddress((HMODULE)h, "?GetCharFromPos@CMainCalcInterface@@QAEHPADJ@Z");
}
由句柄获取字符串函数
void TDX_GetStringValue(inti, char *pBuf)
{
((void (WINAPI*)(char*, int))g_funGetVarName)(pBuf, i);
}
void TDX_GetStringValue(inti, char *pBuf);
void TestPlugin1(intDataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
float *pfStockCode = pfINa;
/*分配空间并获取字符串*/
char szStockCode[500] = { 0 };
TDX_GetStringValue((DWORD)(pfStockCode[0] + 0.49), szStockCode);
for(int i=0;i使用公式示例:
TDXDLL1;
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点