⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 利鹰8选6转换dll接口模型.txt

📁 利鹰8选6转换dll接口模型
💻 TXT
📖 第 1 页 / 共 5 页
字号:
// 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 + -