| 
 | 
 
C++头文件代码如下: 
- //函数(数据个数,输出,输入a,输入b,输入c)
 
 - typedef void(*pPluginFUNC)(int,float*,float*,float*,float*);
 
  
- typedef struct tagPluginTCalcFuncInfo
 
 - {
 
 -         unsigned short                        nFuncMark;//函数编号
 
 -         pPluginFUNC                        pCallFunc;//函数地址
 
 - }PluginTCalcFuncInfo;
 
  
- typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);  
 
  
- #pragma pack(pop)
 
  
- #ifdef __cplusplus
 
 - extern "C"
 
 - {
 
 - #endif //__cplusplus
 
 -         __declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun);
 
 - #ifdef __cplusplus
 
 - }
 
 - #endif //__cplusplus
 
  
- #endif
 
  复制代码 C++源码如下: 
 
- void TestPlugin1(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)
 
 - {
 
 -         for(int i=0;i<DataLen;i++)
 
 -                 pfOUT[i]=(float) i;
 
 - }
 
  
- 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];
 
 -                 pfOUT[i]=pfOUT[i]/3;
 
 -         }
 
 - }
 
  
- //加载的函数
 
 - PluginTCalcFuncInfo g_CalcFuncSets[] = 
 
 - {
 
 -         {1,(pPluginFUNC)&TestPlugin1},
 
 -         {2,(pPluginFUNC)&TestPlugin2},
 
 -         {0,NULL},
 
 - };
 
  
- //导出给的注册函数
 
 - BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun)
 
 - {
 
 -         if(*pFun==NULL)
 
 -         {
 
 -                 (*pFun)=g_CalcFuncSets;
 
 -                 return TRUE;
 
 -         }
 
 -         return FALSE;
 
 - }
 
  复制代码 这里PluginTCalcFuncInfo g_CalcFuncSets[] 整个结构体数组在火山里面具体要怎么实现。我用嵌入调用结合实例中结构基础类方式可以声明结构体,但编译后无效。 
 |   
 
 
 
 |