该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MyMiniDataBase.h
#include
#pragma comment(lib,"WS2_32.LIB")
//struct Size 256 byte.
typedef struct STRCOUNTINFORMATION
{
CHAR MacAddress[20]; //MAC 地址
CHAR SoftWareName[100]; //软件名称
CHAR CurrentIPAddress[20]; //当前使用IP地址
CHAR LastUseIPAddress[20]; //上次使用IP地址
CHAR VersionAndUpdateTime[56]; //版本和更新时间
SYSTEMTIME CurrentUseTime; //当前使用时间
SYSTEMTIME LastUseTime; //上次是用时间
DWORD UseCount; //总共使用次数
bool bPay; //是否付费
}COUNTINFORMATION,*LPCOUNTINFORMATION;
typedef struct STRREADDATA
{
HANDLE hFileMappingObject;
PVOID pAddress;
DWORD dwIndex;
DWORD dwCountRecord;
}READDATA,*LPREADDATA;
class CMyMiniDataBase
{
public:
static LPSTR szFileMapName;
static CRITICAL_SECTION cs;
static DWORD dwCountRecords;
CMyMiniDataBase(){};
virtual ~CMyMiniDataBase();
public:
BOOL InitializeDataBase();
BOOL WriteData(LPCOUNTINFORMATION cfm);
BOOL UpdateData(LPCOUNTINFORMATION cfm);
BOOL InitializeSelecet(READDATA *lpReadData);
BOOL ReadFirstData(READDATA *lpReadData);
BOOL ReadNextData(LPCOUNTINFORMATION cfm,READDATA *lpReadData);
BOOL CloseReadData(READDATA *lpReadData);
BOOL DeleteData(LPCOUNTINFORMATION cfm);
BOOL SelectFirstData(READDATA *lpReadData);
BOOL SelectNextData(READDATA *lpReadData);
BOOL CloseSelectData(READDATA *lpReadData);
protected:
HANDLE hFile;
private:
CHAR szDataBaseFilePath[MAX_PATH];
};
class CSocketOperate : public CMyMiniDataBase
{
public:
SOCKET ClientSocket;
SOCKADDR_IN ClientAddr;
HANDLE hEvent;
public:
CSocketOperate();
~CSocketOperate();
BOOL InitializeSocket();
VOID AccpetHandle(VOID);
VOID CloseWorking();
static DWORD WINAPI WorkingThread(LPVOID lParam);
private:
SOCKET m_Socket;
};