递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4957|回复: 2
打印 上一主题 下一主题

[视窗] 这个C++代码怎么转成火山PC代码

[复制链接]

11

主题

60

帖子

686

积分

高级会员

Rank: 4

积分
686
跳转到指定楼层
楼主
发表于 2021-9-11 02:44:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PluginTCal*Fnc.h头文件中PluginTCal*FncInfo结构用来存放用户自己的函数pCallFunc和函数唯一标记nFuncMark;pCallFunc是typedef void(*pPluginFUNC)( intDataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)类型指针;函数参数分别是(数据个数,输出,输入a,输入b,输入c),参数的计算是基于长度为DataLen的float类型数组。
       RegisterTdxFunc函数为注册函数,用户的函数全部都放入PluginTCal*FncInfo结构的全局数组g_Cal*FncSets中。

PluginTCal*Fnc.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 tagPluginTCal*FncInfo
{
        unsigned short                nFuncMark;//函数编号
        pPluginFUNC                        pCallFunc;//函数地址
}PluginTCal*FncInfo;


typedef BOOL(*pRegisterPluginFUNC)(PluginTCal*FncInfo**);  


#pragma pack(pop)
#endif


#include "stdafx.h"
#include "TCal*FncSets.h"


//生成的dll及相关依赖dll请拷贝到通达信安装目录的T0002/dlls/下面,再在公式管理器进行绑定


void TestPlugin1(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        for(int i=0;i<DataLen;i++)
                pfOUT=i;
}


void TestPlugin2(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
{
        for(int i=0;i<DataLen;i++)
        {
                pfOUT=pfINa+pfINb+pfINc;
                pfOUT=pfOUT/3;
        }
}




//加载的函数
PluginTCal*FncInfo g_Cal*FncSets[] =
{
        {1,(pPluginFUNC)&TestPlugin1},
        {2,(pPluginFUNC)&TestPlugin2},
        {0,NULL},
};


//导出给TCalc的注册函数
BOOL RegisterTdxFunc(PluginTCal*FncInfo** pFun)
{
        if(*pFun==NULL)
        {
                (*pFun)=g_Cal*FncSets;
                return TRUE;
        }
        return FALSE;
}




回复

使用道具 举报

15

主题

134

帖子

3597

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
3597
沙发
发表于 2021-9-11 10:07:20 | 只看该作者
请使用  继承 结构基础类 这种方式。。。。具体看官方自带例子,你可以ctrl+f 搜索全部解决方案,找 使用过 结构基础类 的案例
回复

使用道具 举报

11

主题

60

帖子

686

积分

高级会员

Rank: 4

积分
686
板凳
 楼主| 发表于 2021-9-11 13:37:56 | 只看该作者
能写个列子吗。C++不好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 13:28 , Processed in 0.084275 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表