打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(转载)通达信DLL插件支持字符串技巧

原文链接: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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
windows下进程间的通信介绍
基于C API的SQLite3基本数据库操作
linux动态加载动态链接库
113道C语言题目
基本数据类型共有五种:char、int、float、double、void
详解C++类和成员函数的定义
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服