📄 kxssbdll.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 + -