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

📄 利鹰21选19转换dll算法模型.txt

📁 利鹰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 + -