📄 利鹰21选19转换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字节对齐
*/
//示例函数,使用时用实际名称替换(LyFnc为dll名称,可以重命名生成后的dll名称)
//开始您的c语言函数之旅吧,以下为您预置了3个返回值为数字的空函数
extern "C" _declspec(dllexport) int FUN1(LYDATA *pData)
{
//以下填写您的程序LyFnc为dll名称,可以重命名生成后的dll名称
//通过("LyFnc@FUN1"(123,10);)调用/*软件内得到的数值为123位的除10余数形态*/
int scope,divisor,w,mb; //定义参数scope=号码位置组合,divisor=除数,
if( pData->nParamCount!=4 )//检查参数必须是2个参数
return 0;//不是就中止函数,返回错误。
int nHM[100]; //定义数组
int nNumMax,nNumMin;//定义最大最小函数名称
nNumMax= pData->pCpInfo->nBaseNum;//最大数等于开奖号码的位数,排列三为3位
if( pData->pCpInfo->nSpecialNum > 0 )//当有特别号时
nNumMin=0;//最小值为0
else //否则
nNumMin=1;//最小值为1
int a;//定义a函数名称
a= (int) pData->floParam[0];//a函数等于位置组合,等于第一个参数
divisor=(int) pData->floParam[1];//除数,等于第二个参数
w=(int) pData->floParam[2] - 1;//等于第三个参数,用于软件内取用转换后的数值
mb=(int) pData->floParam[3];//等于第4个参数,用于软件内取用转换后的数值
int d= 100000000;//定义d函数名称,数值等于100000000
nHM[0]= 0 ;//nHM[0]数组赋值为0(用nHM[0]=(int) pData->pCpData->nNum[0]不能进行乐透型的计算);
int i,n,nZS1;//定义i,n,nZS函数名称
for( i=0;i<9;i++)
{
float n1 ;
n1 = (a/d);
n =(int) n1;//n=(int) (a/d);//intpart(a/d);//取整数部分,intpart是利鹰内的取整数函数
if( n!=0 || i==8 )
{
if( n>=nNumMin && n<=nNumMax )
{
nHM[0]++;
nHM[ nHM[0] ]=n;
};
a=(a - n * d);
};
d=(d/10);
};
nZS1=(0);
for(n=1;n<=nHM[0];n++)
{
i=nHM[n];
float a1 ;
a1 = ( pData->pCpData->nNum[i] % divisor);//求余数
a=(int) a1;//intpart( nHM[i] % 10 );//取整数部分
nZS1=nZS1*10+a;
};
int x1,y1,z1,w1,nZS,y2;
y2=(int) (nZS1/10);
x1=(int) (nZS1/100);
y1=(int) (y2%10);
z1=(int) (nZS1%10);
if( x1>y1 )
{w1=x1; x1=y1; y1=w1;}
if( x1>z1 )
{w1=x1; x1=z1; z1=w1;}
if( y1>z1 )
{w1=y1; y1=z1; z1=w1;}
nZS=(x1*100)+(y1*10)+z1;
/////*************下面是转换部分
int qm1,qm2,qm3,qm4,qm5,qm6,zx1,zx2,zx3,zx4,zx5,zx6,zx7,zx8,zx9,fx10,fx11,fx12,fx13,fx14,fx15,fx16,fx17,fx18,fx19,fx20,fx21,qh;//定义zx1...fx21
//////下面是转换,用switch( )开关组合语句寻找序号
switch(mb)
{
case 0 :
switch(nZS)
{
} break;
case 1 :
switch(nZS)
{
} break;
case 2 :
switch(nZS)
{
} break;
case 3 :
switch(nZS)
{
} break;
case 4 :
switch(nZS)
{
} break;
case 5 :
switch(nZS)
{
} break;
case 6 :
switch(nZS)
{
} break;
case 7 :
switch(nZS)
{
} break;
case 8 :
switch(nZS)
{
} break;
case 9 :
switch(nZS)
{
} break;
case 10 :
switch(nZS)
{
} break;
case 11 :
switch(nZS)
{
} break;
case 12 :
switch(nZS)
{
} break;
case 13 :
switch(nZS)
{
} break;
case 14 :
switch(nZS)
{
} break;
case 15 :
switch(nZS)
{
} break;
case 16 :
switch(nZS)
{
} break;
case 17 :
switch(nZS)
{
} break;
case 18 :
switch(nZS)
{
} break;
case 19 :
switch(nZS)
{
} break;
case 20 :
switch(nZS)
{
} break;
}
int zx[100];
zx[1]=(qm1%100);
zx2=(int)(qm1/100);
zx[2]=(zx2%100);
zx3=(int)(zx2/100);
zx[3]=(zx3%100);
zx4=(int)(zx3/100);
zx[4]=(zx4%100);
//zx5=(int)(zx4/100);
zx[5]=(qm2%100);
zx6=(int)(qm2/100);
zx[6]=(zx6%100);
zx7=(int)(zx6/100);
zx[7]=(zx7%100);
zx8=(int)(zx7/100);
zx[8]=(zx8%100);
//zx9=(int)(zx8/100);
zx[9]=(qm3%100);
fx10=(int)(qm3/100);
zx[10]=(fx10%100);
fx11=(int)(fx10/100);
zx[11]=(fx11%100);
fx12=(int)(fx11/100);
zx[12]=(fx12%100);
// fx13=(int)(fx12/100);
zx[13]=(qm4%100);
fx14=(int)(qm4/100);
zx[14]=(fx14%100);
fx15=(int)(fx14/100);
zx[15]=(fx15%100);
fx16=(int)(fx15/100);
zx[16]=(fx16%100);
// fx17=(int)(fx16/100);
zx[17]=(qm5%100);
fx18=(int)(fx17/100);
zx[18]=(fx18%100);
fx19=(int)(fx18/100);
zx[19]=(fx19%100);
fx20=(int)(fx19/100);
zx[20]=(fx20%100);
//fx21=(int)(fx20/100);
zx[21]=(qm6%100);
int iz;
for( iz=0;iz<9;iz++)
{ zx[iz]; };
pData->pfResult = new float[25];//为转换数据建立数组
int hh=(int) ( 231 - qh);//231-qh就是反选的和值
pData->pfResult[0] = (float)zx[1];//转换后的第1位
pData->pfResult[1] = (float)zx[2];
pData->pfResult[2] = (float)zx[3];
pData->pfResult[3] = (float)zx[4];
pData->pfResult[4] = (float)zx[5];
pData->pfResult[5] = (float)zx[6];
pData->pfResult[6] = (float)zx[7];
pData->pfResult[7] = (float)zx[8];
pData->pfResult[8] = (float)zx[9];
pData->pfResult[9] = (float)zx[10];//转换后的第10位,即14选10的最后一个数
pData->pfResult[10] = (float)zx[11];//转换后14选10的反选第1位
pData->pfResult[11] = (float)zx[12];
pData->pfResult[12] = (float)zx[13];
pData->pfResult[13] = (float)zx[14];//转换后14选10的反选第4位,即14选10的反选14选4的最后一个数
pData->pfResult[14] = (float)qh;//w=15;14选10的和值,105-qh就是反选的和值
pData->pfResult[15] = (float)hh;//w=16
pData->pfResult[16] = (float)hh;
pData->pfResult[17] = (float) (zx[1],zx[2],zx[3],zx[4],zx[5],zx[6],zx[7],zx[8],zx[9],zx[10]); //w=18
pData->pfResult[18] = (float) (zx[11],zx[12],zx[13],zx[14]); //w=19
pData->pfResult[19] = (float) ((zx[1])||(zx[2])||(zx[3])||(zx[4])||(zx[5])||(zx[6])||(zx[7])||(zx[8])||(zx[9])||(zx[10])); //w=20
pData->pfResult[20] = (float) (zx[11]||zx[12]||zx[13]||zx[14]); //w=21
pData->pfResult[21] = pData->pfResult[iz];
/*//本函数返回值转换后的数值是数字,因此通pData->pfResult指针返回*/////
*pData->pfResult=pData->pfResult[w];
/////*************上面是转换部分
return 1;
}
extern "C" _declspec(dllexport) int FUN2(LYDATA *pData)
{
//以下填写您的程序
return 1;
}
extern "C" _declspec(dllexport) int FUN3(LYDATA *pData)
{
//以下填写您的程序
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -