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

📄 kxssbdll.cpp

📁 shuibiao danpianji chengxu
💻 CPP
字号:
#include <string.h>
#include <time.h>
#include "windows.h"
#include "kxssbdll.h"
#include "kxssbpriv.h"
#include "..\spkdll_share\spkdll.h"
#include "KxBase.h"
#include "DeviceBase03.h"

int nCurrCardNum;				//当前卡类型
int DKQPORT = 1;				//读卡器端口
int testmm=0;					//测试状态标志
int testview=1;					//数据输入值显示
int resrand;					//重置随机函数种子
union STRZNUM strznum;			//字符和长整转换用联合
int CURRCARDNUM=1;				//当前卡类型号
class CDeviceBase03 cdevicebase03;
class CKxBase * fp=&cdevicebase03;

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;
}

/****************************************************************************

    FUNCTION: KxGetID(	long KnID,	//用户ID号
						long yhmm	//用户密码
					  )

    PURPOSE: 核对消费卡

****************************************************************************/
int APIENTRY KxGetID(	long KnID,	//用户ID号
						long yhmm	//用户密码
					)
{
	return fp->DKxGetID(KnID,yhmm);
}
/****************************************************************************

    FUNCTION: KxXfqr(	long KnID,				//用户ID号
						long yhmm,				//用户密码
						struct XFCZSJ * dbsj,	//电表数据
						struct XFCZSJ * qbsj,	//气表数据
						struct XFCZSJ * sb1sj,	//水表1数据
						struct XFCZSJ * sb2sj	//水表2数据
					)

  PURPOSE: 读卡内数据分析消费情况

****************************************************************************/
int APIENTRY  KxXfqr(	long KnID,				//用户ID号
						long yhmm,				//用户密码
						struct XFCZSJ * qbsj,	//气表数据
						struct XFCZSJ * dbsj,	//电表数据
						struct XFCZSJ * sb1sj,	//水表1数据
						struct XFCZSJ * sb2sj	//水表2数据
					 )
{
	return fp->DKxXfqr(KnID,yhmm,qbsj,dbsj,sb1sj,sb2sj);
}

/****************************************************************************

    FUNCTION: KxRdjck(long * KnID,			//返回用户ID号
					  struct JCCZSJ * jcsj	//返回表内数据
					)

  PURPOSE: 读表内数据检查表内情况

****************************************************************************/
int APIENTRY KxRdjck(long * KnID,			//返回用户ID号
					 long * DrvID,			//表型号
					 struct JCCZSJ * jcsj	//返回表内数据
					 )
{
	return fp->DKxRdjck(KnID,DrvID,jcsj);
}
/****************************************************************************

    FUNCTION: KxRdjckEx(long * KnID,		//返回卡内操作参数
					  struct JCCZSJ * jcsj	//返回表内数据
					)

  PURPOSE: 读表内数据检查表内情况

****************************************************************************/
int APIENTRY KxRdjckEx(long * KnID,			//返回卡内操作参数
					 long * DrvID,			//表型号
					 struct JCCZSJ * jcsj	//返回表内数据
					 )
{
	return fp->DKxRdjckEx(KnID,DrvID,jcsj);
}

/****************************************************************************

    FUNCTION: KxZfxk (	long KnID,				//用户ID号
						long yhmm,				//用户密码
						struct FXCZSJ * fxsj	//发行卡表数据
					  );
  PURPOSE: 制作新发行卡

****************************************************************************/
int APIENTRY  KxZfxk (	long KnID,				//用户ID号
						long yhmm,				//用户密码
						struct FXCZSJ * fxczsj	//发行卡表数据
					  )

{
	return fp->DKxZfxk(KnID,yhmm,fxczsj);
}
/****************************************************************************

    FUNCTION: KxJcxk (long KnID );		//用户ID号
    PURPOSE: 制作检查卡

****************************************************************************/
int APIENTRY  KxZjck (
					  long KnID		//用户ID号
					  )
{
	return fp->DKxZjck( KnID);
}

/****************************************************************************

    FUNCTION: KxJcxkEx (long KnID );		//卡内操作参数
    PURPOSE: 扩展制作检查卡

****************************************************************************/
int APIENTRY  KxZjckEx (
					  long KnID		//卡内操作参数
					  )
{
	return fp->DKxZjckEx( KnID);
}

/****************************************************************************

    FUNCTION: KxFsxk(	long KnID,		//用户ID号
						long yhmm		//用户密码	
					);

  PURPOSE: 发售新消费卡

****************************************************************************/

int APIENTRY  KxFsxk(	long KnID,		//用户ID号
						long yhmm		//用户密码	
					 )
{
	return fp->DKxFsxk(KnID,yhmm);
}

/****************************************************************************

    FUNCTION: KxWrxfk(	long KnID,				//用户ID
						long yhmm,				//用户密码
						struct XFCZSJ * dbsj,	//电表数据
						struct XFCZSJ * qbsj,	//气表数据
						struct XFCZSJ * sb1sj,	//水表1数据
						struct XFCZSJ * sb2sj	//水表2数据
					 )
  PURPOSE: 写消费数据

****************************************************************************/

int APIENTRY  KxWrxfk(	long KnID,				//用户ID
						long yhmm,				//用户密码
						struct XFCZSJ * qbsj,	//气表数据
						struct XFCZSJ * dbsj,	//电表数据
						struct XFCZSJ * sb1sj,	//水表1数据
						struct XFCZSJ * sb2sj	//水表2数据
					  )
{
	return fp->DKxWrxfk(KnID,yhmm,qbsj,dbsj,sb1sj,sb2sj);
}

/****************************************************************************

    FUNCTION: KxLockXfk(long KnID, long yhmm);

    PURPOSE: 消费卡加锁

****************************************************************************/

int APIENTRY KxLockXfk(long KnID, long yhmm)
{
	return fp->DKxLockXfk( KnID, yhmm);
}
/****************************************************************************

    FUNCTION: KxResetXfk(	long KnID,		//用户ID号
						    long yhmm		//用户密码	
					);

    PURPOSE: 重新初始化消费卡消费卡

****************************************************************************/
int APIENTRY KxResetXfk(long KnID,long yhmm)
{
	return fp->DKxResetXfk(KnID,yhmm);
}

/****************************************************************************

    FUNCTION: Clear_fx();

    PURPOSE: 清除发行卡

****************************************************************************/

int APIENTRY Clear_fx()
{
	return fp->DClear_fx();
}
/****************************************************************************

    FUNCTION: Clear_jc();

    PURPOSE: 清除检查卡

****************************************************************************/

int APIENTRY Clear_jc()
{
	return fp->DClear_jc();
}
/****************************************************************************

    FUNCTION: Clear_xf(	long KnID,		//用户ID号
						long yhmm		//用户密码
					   );

  PURPOSE: 清除消费卡

****************************************************************************/
int APIENTRY Clear_xf(	long KnID,		//用户ID号
						long yhmm		//用户密码
					  )
{
	return fp->DClear_xf(KnID,yhmm);
}
/****************************************************************************

    FUNCTION:  KxRdFxk(	long * KnID,		//卡内ID
						long * yhmm,		//用户密码
						struct FXCZSJ *		//发行卡表数据
					   )
    PURPOSE: 读发行卡确定发行卡使用情况

****************************************************************************/

int APIENTRY KxRdFxk(long * KnID,			//卡内ID
					 long * yhmm,			//用户密码
					 struct FXCZSJ * fxsj	//发行卡表数据
					 )
{
	return fp->DKxRdFxk(KnID,yhmm,fxsj);
}

/****************************************************************************

    FUNCTION: KxViewSet(int xsys)

    PURPOSE: 确定是否显示传递信息

****************************************************************************/

int APIENTRY KxViewSet(int xsys)
{
	if (xsys==1)
	{
		testview=1;
	}
	else
	{
		testview=0;
	}
	cdevicebase03.testview=testview;
	return 0;
}
/****************************************************************************

    FUNCTION: KxZbck(long buchang	//补偿值
					)
  PURPOSE: 制作补偿卡

****************************************************************************/

int APIENTRY KxZbck(struct CZBCSJ * buchang	//补偿值
					)
{
	return fp->DKxZbck(buchang);
}
/****************************************************************************

    FUNCTION: KxZjyk(struct CZJYSJ * jysj)
	PURPOSE: 制作校验卡

****************************************************************************/

int APIENTRY KxZjyk(struct CZJYSJ * jysj)
{
	return fp->DKxZjyk(jysj);
}

/****************************************************************************

    FUNCTION: KxRdjyk(struct CZJYSJ * jysj)
	PURPOSE: 读取校验卡

****************************************************************************/

int APIENTRY KxRdjyk(struct CZJYSJ * jysj)
{
	return fp->DKxRdjyk(jysj);
}

/****************************************************************************

    FUNCTION: KxGetDrvErrMsg(long DrvID,			//表号
							 long * cwdm,			//错误代码
							 long * cwdj,			//错误等级
							 unsigned char * cwmsg	//错误信息
							 )
    PURPOSE: 返回表内错误状态的含义

****************************************************************************/
int APIENTRY KxGetDrvErrMsg( long DrvID,			//表号
							 long * cwdm,			//错误代码
							 long * cwdj,			//错误等级
							 unsigned char * cwmsg	//错误信息
							 )
{
	return fp->DKxGetDrvErrMsg(DrvID,cwdm,cwdj,cwmsg);
}
/****************************************************************************

    FUNCTION: KxGetVermsg(char * vermsg)

    PURPOSE: 返回版本显示信息

****************************************************************************/

int APIENTRY KxGetVermsg(char * vermsg)
{
	int i;
	char xsxx[100]={"\nspsb\n射频卡一卡多表\n"};

	for (i=0;i<100;i++)
	{
		vermsg[i]=xsxx[i];
		if(xsxx[i]=0) break;
	}

	return 0;
}
/****************************************************************************

    FUNCTION: KxGetVerno(int *  verno)

    PURPOSE: 返回版本号

****************************************************************************/

int APIENTRY KxGetVerno(int *  verno)
{
	*verno=50100020;
	return 0;
}

int APIENTRY KxSetCurrCard(long *nCardNum)
{
	switch ( *nCardNum)
	{
		case 3:
			CURRCARDNUM= *nCardNum;
			fp= &cdevicebase03;
			fp->testview;
			break;
		default :
			return 0x101;		//设置卡类型错
	}
	return 0;
}
int APIENTRY KxGetCurrCard(long *nCardNum)
{
	*nCardNum=CURRCARDNUM;
	return 0;
}
int APIENTRY KxGetCardDate(long * carddate)
{
	return fp->DKxGetCardDate(carddate)	;
}
int APIENTRY KxSetCardDate(long * carddate)
{
	return fp->DKxSetCardDate(carddate);
}

int APIENTRY KxSetCurrDevice(long *qbsj,long *dbsj,long *sb1sj,long *sb2sj)
{	
	return fp->DKxSetCurrDevice(qbsj,dbsj,sb1sj,sb2sj);
}
int APIENTRY KxGetCurrDevice(long *qbsj,long *dbsj,long *sb1sj,long *sb2sj)
{
	return fp->DKxGetCurrDevice(qbsj,dbsj,sb1sj,sb2sj);	
}
int	APIENTRY KxSetFxmm(long fxmm)
{
	return fp->DKxSetFxmm(fxmm);
}
int	APIENTRY KxGetFxmm(long *fxmm,long pwd)
{
	return fp->DKxGetFxmm(fxmm,pwd);
}
int APIENTRY SetComm(int Sckh)
{
	return Set_Comm(Sckh);
}

void APIENTRY CloseComm(void)
{
	Close_Comm();
}

int APIENTRY SetBeep(int beep)
{
	return Set_beep(beep);
}

int APIENTRY KxZhbc(void)
{
	return fp->DKxZhbc();
}
int APIENTRY Kxtestcard(void)
{
	return fp->testcard();
}
int APIENTRY Kxcleartestcard(void)
{
	return fp->cleartestcard();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -