📄 利鹰8选6转换dll接口模型.txt
字号:
// LyFnc.cpp : Defines the entry point for the DLL application.
/*
///////////////////////////////////////////////////////////////////////////
利鹰扩展函数规范V2.05
1.本规范适用于利鹰2.05公式系统.
2.扩展函数用于实现系统函数不能实现的特殊算法,提高运算速度。
3.扩展函数用windows 32位动态连接库实现,建议使用Microsoft Visual C++编程.
4.调用时在公式编辑器中写"动态库名称@函数名称"(参数表)即可,例如下面函数可以写为"LFUNC@MYFUN"(5)
5.动态连接库名称和函数名称可以自己定义.
6.使用时可以将动态库拷贝到利鹰目录下使用.
*/
#include "stdafx.h"
#include "FncData.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
///////////////////////////////////////////////////////////////////////////////////
/* 函数输出
extern "C" _declspec(dllexport) int xxxxxxxx(CLYDATA* pData); ---------- A
extern "C" _declspec(dllexport) int xxxxxxxxSTR(CLYDATA* pData); ---------- B
1.函数名称需全部大写.
2.函数必须以上述A,B两种形式之一声明,请用实际函数名称替代xxxxxxxx;
对于C++程序还需包括在 extern "C" { } 括号中.
3.上述形式A用于声明返回值为数字的函数;
形式B用于声明返回值为字符串的函数;两种函数的区别在于后者以STR结尾.
4.函数计算数字结果用pData->pfResult带回;
字符串结果由pData->pcResult带回,字符串长度不能超过100字节
5.函数返回0表示错误或数据无效,否则返回非1;
6.函数名称长度不能超过15字节,动态连接库文件名不能超过9字节(不包括扩展名),动态库名称不能叫SYSTEM,EXPLORER
7.编译时请请选择1字节对齐
*/
extern "C" _declspec(dllexport) int FUN0(LYDATA *pData)
{
int i,w;
if( pData->nParamCount!=2 )//检查参数必须是2个参数
return 0;//不是就中止函数,返回错误
i= (int) pData->floParam[0];//第一个参数
w=(int) pData->floParam[1] - 1;//等于第二个参数
int zx1,zx2,zx3,zx4,zx5,zx6,zx7,zx8,qh,bxh;//定义zx1...fx14
//////下面是转换,用switch( )开关组合语句寻找序号
switch(i)
{
case 0 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=6; zx7=7; zx8=8; qh=21; bxh=0; break;
case 1 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=7; zx7=6; zx8=8; qh=22; bxh=1; break;
case 2 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=8; zx7=6; zx8=7; qh=23; bxh=2; break;
case 3 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=7; zx7=5; zx8=8; qh=23; bxh=3; break;
case 4 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=8; zx7=5; zx8=7; qh=24; bxh=4; break;
case 5 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=7; zx6=8; zx7=5; zx8=6; qh=25; bxh=5; break;
case 6 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=7; zx7=4; zx8=8; qh=24; bxh=6; break;
case 7 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=8; zx7=4; zx8=7; qh=25; bxh=7; break;
case 8 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=7; zx6=8; zx7=4; zx8=6; qh=26; bxh=8; break;
case 9 : zx1=1; zx2=2; zx3=3; zx4=6; zx5=7; zx6=8; zx7=4; zx8=5; qh=27; bxh=9; break;
case 10 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=7; zx7=3; zx8=8; qh=25; bxh=10; break;
case 11 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=8; zx7=3; zx8=7; qh=26; bxh=11; break;
case 12 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=7; zx6=8; zx7=3; zx8=6; qh=27; bxh=12; break;
case 13 : zx1=1; zx2=2; zx3=4; zx4=6; zx5=7; zx6=8; zx7=3; zx8=5; qh=28; bxh=13; break;
case 14 : zx1=1; zx2=2; zx3=5; zx4=6; zx5=7; zx6=8; zx7=3; zx8=4; qh=29; bxh=14; break;
case 15 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=2; zx8=8; qh=26; bxh=15; break;
case 16 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=2; zx8=7; qh=27; bxh=16; break;
case 17 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=2; zx8=6; qh=28; bxh=17; break;
case 18 : zx1=1; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=2; zx8=5; qh=29; bxh=18; break;
case 19 : zx1=1; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=4; qh=30; bxh=19; break;
case 20 : zx1=1; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=3; qh=31; bxh=20; break;
case 21 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=1; zx8=8; qh=27; bxh=21; break;
case 22 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=1; zx8=7; qh=28; bxh=22; break;
case 23 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=1; zx8=6; qh=29; bxh=23; break;
case 24 : zx1=2; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=1; zx8=5; qh=30; bxh=24; break;
case 25 : zx1=2; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=4; qh=31; bxh=25; break;
case 26 : zx1=2; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=3; qh=32; bxh=26; break;
case 27 : zx1=3; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=2; qh=33; bxh=27; break;
}
//最后 需要把值返回
pData->pfResult = new float[11];//为转换数据建立数组
int hh=(int) (36 - qh);//
pData->pfResult[0] = (float)zx1;//转换后的第1位
pData->pfResult[1] = (float)zx2;
pData->pfResult[2] = (float)zx3;
pData->pfResult[3] = (float)zx4;
pData->pfResult[4] = (float)zx5;
pData->pfResult[5] = (float)zx6;
pData->pfResult[6] = (float)zx7;
pData->pfResult[7] = (float)zx8;
pData->pfResult[8] = (float)qh;
pData->pfResult[9] = (float)hh;
pData->pfResult[10] = (float)bxh;
/*//本函数返回值转换后的数值是数字,因此通pData->pfResult指针返回*/////
*pData->pfResult=pData->pfResult[w];
/////*************上面是转换部分
return 1;
}
extern "C" _declspec(dllexport) int FUN1(LYDATA *pData)
{
int i,w;
if( pData->nParamCount!=2 )//检查参数必须是2个参数
return 0;//不是就中止函数,返回错误
i= (int) pData->floParam[0];//第一个参数
w=(int) pData->floParam[1] - 1;//等于第二个参数
int zx1,zx2,zx3,zx4,zx5,zx6,zx7,zx8,qh,bxh;//定义zx1...fx14
//////下面是转换,用switch( )开关组合语句寻找序号
switch(i)
{
case 0 : zx1=1; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=3; qh=31; bxh=20; break;
case 1 : zx1=1; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=2; zx8=5; qh=29; bxh=18; break;
case 2 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=2; zx8=7; qh=27; bxh=16; break;
case 3 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=7; zx7=5; zx8=8; qh=23; bxh=3; break;
case 4 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=2; zx8=6; qh=28; bxh=17; break;
case 5 : zx1=2; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=4; qh=31; bxh=25; break;
case 6 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=8; zx7=3; zx8=7; qh=26; bxh=11; break;
case 7 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=6; zx7=7; zx8=8; qh=21; bxh=0; break;
case 8 : zx1=1; zx2=2; zx3=4; zx4=6; zx5=7; zx6=8; zx7=3; zx8=5; qh=28; bxh=13; break;
case 9 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=2; zx8=8; qh=26; bxh=15; break;
case 10 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=1; zx8=7; qh=28; bxh=22; break;
case 11 : zx1=2; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=3; qh=32; bxh=26; break;
case 12 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=7; zx6=8; zx7=3; zx8=6; qh=27; bxh=12; break;
case 13 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=7; zx6=8; zx7=4; zx8=6; qh=26; bxh=8; break;
case 14 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=8; zx7=6; zx8=7; qh=23; bxh=2; break;
case 15 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=1; zx8=6; qh=29; bxh=23; break;
case 16 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=8; zx7=5; zx8=7; qh=24; bxh=4; break;
case 17 : zx1=2; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=1; zx8=5; qh=30; bxh=24; break;
case 18 : zx1=1; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=4; qh=30; bxh=19; break;
case 19 : zx1=3; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=2; qh=33; bxh=27; break;
case 20 : zx1=1; zx2=2; zx3=3; zx4=6; zx5=7; zx6=8; zx7=4; zx8=5; qh=27; bxh=9; break;
case 21 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=7; zx7=3; zx8=8; qh=25; bxh=10; break;
case 22 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=7; zx7=6; zx8=8; qh=22; bxh=1; break;
case 23 : zx1=1; zx2=2; zx3=5; zx4=6; zx5=7; zx6=8; zx7=3; zx8=4; qh=29; bxh=14; break;
case 24 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=8; zx7=4; zx8=7; qh=25; bxh=7; break;
case 25 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=1; zx8=8; qh=27; bxh=21; break;
case 26 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=7; zx7=4; zx8=8; qh=24; bxh=6; break;
case 27 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=7; zx6=8; zx7=5; zx8=6; qh=25; bxh=5; break;
}
//最后 需要把值返回
pData->pfResult = new float[11];//为转换数据建立数组
int hh=(int) (36 - qh);//
pData->pfResult[0] = (float)zx1;//转换后的第1位
pData->pfResult[1] = (float)zx2;
pData->pfResult[2] = (float)zx3;
pData->pfResult[3] = (float)zx4;
pData->pfResult[4] = (float)zx5;
pData->pfResult[5] = (float)zx6;
pData->pfResult[6] = (float)zx7;
pData->pfResult[7] = (float)zx8;
pData->pfResult[8] = (float)qh;
pData->pfResult[9] = (float)hh;
pData->pfResult[10] = (float)bxh;
/*//本函数返回值转换后的数值是数字,因此通pData->pfResult指针返回*/////
*pData->pfResult=pData->pfResult[w];
/////*************上面是转换部分
return 1;
}
extern "C" _declspec(dllexport) int FUN2(LYDATA *pData)
{
int i,w;
if( pData->nParamCount!=2 )//检查参数必须是2个参数
return 0;//不是就中止函数,返回错误
i= (int) pData->floParam[0];//第一个参数
w=(int) pData->floParam[1] - 1;//等于第二个参数
int zx1,zx2,zx3,zx4,zx5,zx6,zx7,zx8,qh,bxh;//定义zx1...fx14
//////下面是转换,用switch( )开关组合语句寻找序号
switch(i)
{
case 0 : zx1=1; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=3; qh=31; bxh=20; break;
case 1 : zx1=2; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=3; qh=32; bxh=26; break;
case 2 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=6; zx7=7; zx8=8; qh=21; bxh=0; break;
case 3 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=8; zx7=4; zx8=7; qh=25; bxh=7; break;
case 4 : zx1=3; zx2=4; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=2; qh=33; bxh=27; break;
case 5 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=7; zx7=6; zx8=8; qh=22; bxh=1; break;
case 6 : zx1=1; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=2; zx8=4; qh=30; bxh=19; break;
case 7 : zx1=2; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=1; zx8=5; qh=30; bxh=24; break;
case 8 : zx1=2; zx2=3; zx3=5; zx4=6; zx5=7; zx6=8; zx7=1; zx8=4; qh=31; bxh=25; break;
case 9 : zx1=1; zx2=2; zx3=3; zx4=6; zx5=7; zx6=8; zx7=4; zx8=5; qh=27; bxh=9; break;
case 10 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=7; zx6=8; zx7=3; zx8=6; qh=27; bxh=12; break;
case 11 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=1; zx8=7; qh=28; bxh=22; break;
case 12 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=8; zx7=2; zx8=7; qh=27; bxh=16; break;
case 13 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=1; zx8=8; qh=27; bxh=21; break;
case 14 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=5; zx6=8; zx7=6; zx8=7; qh=23; bxh=2; break;
case 15 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=7; zx7=3; zx8=8; qh=25; bxh=10; break;
case 16 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=7; zx6=8; zx7=5; zx8=6; qh=25; bxh=5; break;
case 17 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=2; zx8=6; qh=28; bxh=17; break;
case 18 : zx1=1; zx2=3; zx3=4; zx4=5; zx5=6; zx6=7; zx7=2; zx8=8; qh=26; bxh=15; break;
case 19 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=7; zx7=5; zx8=8; qh=23; bxh=3; break;
case 20 : zx1=2; zx2=3; zx3=4; zx4=5; zx5=7; zx6=8; zx7=1; zx8=6; qh=29; bxh=23; break;
case 21 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=6; zx6=7; zx7=4; zx8=8; qh=24; bxh=6; break;
case 22 : zx1=1; zx2=2; zx3=5; zx4=6; zx5=7; zx6=8; zx7=3; zx8=4; qh=29; bxh=14; break;
case 23 : zx1=1; zx2=2; zx3=4; zx4=5; zx5=6; zx6=8; zx7=3; zx8=7; qh=26; bxh=11; break;
case 24 : zx1=1; zx2=2; zx3=3; zx4=4; zx5=6; zx6=8; zx7=5; zx8=7; qh=24; bxh=4; break;
case 25 : zx1=1; zx2=2; zx3=4; zx4=6; zx5=7; zx6=8; zx7=3; zx8=5; qh=28; bxh=13; break;
case 26 : zx1=1; zx2=3; zx3=4; zx4=6; zx5=7; zx6=8; zx7=2; zx8=5; qh=29; bxh=18; break;
case 27 : zx1=1; zx2=2; zx3=3; zx4=5; zx5=7; zx6=8; zx7=4; zx8=6; qh=26; bxh=8; break;
}
//最后 需要把值返回
pData->pfResult = new float[11];//为转换数据建立数组
int hh=(int) (36 - qh);//
pData->pfResult[0] = (float)zx1;//转换后的第1位
pData->pfResult[1] = (float)zx2;
pData->pfResult[2] = (float)zx3;
pData->pfResult[3] = (float)zx4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -