mj800dll.cpp

来自「门禁接口DLL」· C++ 代码 · 共 90 行

CPP
90
字号

#include <windows.h>
#include <stdio.h>

#include "MJ800DLL.h"

HINSTANCE g_hInst;

PmjInitialize	mjInitDevice;
PmjReadCard		mjReadCard;
PmjTerminate	mjCloseDevice;

bool htsInitalise()
{
	g_hInst=::LoadLibrary("MJDLL.dll");

	mjInitDevice = 
		(PmjInitialize)GetProcAddress(g_hInst,"mjInitDevice");
	if(mjInitDevice == NULL)
		return false;
	mjReadCard = 
		(PmjReadCard)GetProcAddress(g_hInst,"mjReadCard");
	if(mjReadCard == NULL)
		return false;
	mjCloseDevice =
		(PmjTerminate)GetProcAddress(g_hInst,"mjCloseDevice");
	if(mjCloseDevice == NULL)
		return false;		
	if (mjInitDevice(1,19200) != 0)
		return false;

	return true;
	
}

bool htsReadCard(char* sCard,char* sDateTime)
{
	char buff[7];
	int j,l;	
	char temp1[4],temp2[6];
	char buff1[4],buff2[6];
	ZeroMemory(buff,7);
	ZeroMemory(temp1,4);
	ZeroMemory(temp2,6);
	ZeroMemory(buff1,4);
	ZeroMemory(buff2,6);
	if(mjReadCard(1,buff) != 0)
	{
		return false;
	}
	else
	{
		memcpy(buff1, buff, 2);
		memcpy(buff2, buff+2, 4);

		sscanf(buff1,"%x",&j);
		sscanf(buff2,"%x",&l);

		sprintf(temp1,"%d",j);
		strcpy(buff1,"000");
		strcpy(buff1+3-strlen(temp1),temp1);

		sprintf(temp2,"%d",l);
		strcpy(buff2,"00000");
		strcpy(buff2+5-strlen(temp2),temp2);

		sprintf(sCard,"%s%s",buff1,buff2);

		SYSTEMTIME time;
		GetSystemTime(&time);
		sprintf(sDateTime,"%d-%d-%d %d:%d:%d",time.wYear,time.wMonth,
			time.wDay,(time.wHour)+8,time.wMinute,time.wSecond);
	}
	return true;
}
bool htsTerminate()
{	
	if (mjCloseDevice == NULL)
	{
		return false;
	}
	else 
	{
		mjCloseDevice();
		return true;
	}

	FreeLibrary(g_hInst);
}

⌨️ 快捷键说明

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