原文链接:https://mp.weixin.qq.com/s/vEwfRELUpHEQGGCpS_uqzQ 原作者:品生文化 通达信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<DataLen;i ) pfOUT[i]=i; } 使用公式示例: TDXDLL1(1,CODE,0,0); 最后编辑于:2022-08-29 00:11 |
|