md_profile.h
来自「MDEngine2plus游戏开发库! 用来开发游戏超级简单!」· C头文件 代码 · 共 104 行
H
104 行
// MD_Profile.h: interface for the CMD_Profile class.
//
//////////////////////////////////////////////////////////////////////
#ifndef MD_PROFILE_H
#define MD_PROFILE_H
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifdef MDENGINE2P_EXPORTS
#define MDENGINE_API __declspec(dllexport)
#else
#define MDENGINE_API __declspec(dllimport)
#endif
#include "common.h"
typedef DWORD ( *getProviderTypeDLL)(void);
typedef bool ( *OpenDLL)(BYTE*,int,char *);
typedef char* ( *ReadTextDLL)(char* ,char* ,char*);
typedef bool ( *WriteTextDLL)(char* ,char* ,char*);
typedef bool ( *SaveDLL)(char*);
typedef void ( *CloseDLL)(void);
class MDENGINE_API CMD_Profile
{
public:
CMD_Profile();
CMD_Profile(char *filename,char *provider=NULL);
virtual ~CMD_Profile();
public:
void EnableErrMSG(bool bshowerr); // 允许or禁止弹出错误信息
DWORD GetErrCode(void); // 得到错误代码
bool Open(char *filename);
bool Open(LPBYTE buf,DWORD len);
void Close();
bool Save(char *filename=NULL);
bool ConnectProvider(char *ProviderName); // 联接到外部FileProvider
void FreeProvider(); // 释放FileProvider
long ReadInt(char *index, char *name, long defvalue); // 读一个整数
long ReadInt(char *index, int lines, long defvalue); // 在指定的行(0 based)读一整数
double ReadFloat(char *index, char *name, double defvalue);// 读一个浮点数
double ReadFloat(char *index, int lines, double defvalue); // 在指定的行读一浮点数
char *ReadText(char *index, char *name, char *defvalue); // 读一个字符串
char *ReadText(char *index, int lines, char *defvalue); // 在指定的行读一字符串
int ReadIntRegKey(HKEY hKey, char *subkey, char *regname, int valdef); // 读取指定注册表键的整数
char *ReadTextRegKey(HKEY hKey, char *subkey, char *regname, char *def); // 读取指定注册表键的字符串
BYTE *ReadBinRegKey(HKEY hKey, char *subkey, char *regname, BYTE *def); // 读取指定注册表键的二进制串
void WriteInt(char *index, char *name, long num); // 写一个整数
void WriteFloat(char *index, char *name, double value); // 写一个浮点数
void WriteText(char *index, char *name, char *string); // 写一个字符串
bool WriteIntRegKey(HKEY hKey, char *subkey, char *regname, int value); // 向指定注册表位置写一个整数
bool WriteTextRegKey(HKEY hKey, char *subkey, char *regname, char *value); // 向指定注册表位置写一个字符串
bool WriteBinRegKey(HKEY hKey, char *subkey, char *regname, BYTE *lpdata, int size);// 向指定注册表位置写一个二进制串
private:
void ShowErrMSG();
void InitIndex();
DWORD FindIndex(char* index);
DWORD FindData(char* name,DWORD index);
DWORD FindData(DWORD index,int lines);
DWORD GetNextLine(DWORD pos);
// String functions
bool startWith(char *sour,char *str);
int indexOf(char *sour,char str);
private:
char m_FileName[255];
char* m_lpData;
DWORD m_DataLen;
DWORD *m_lpIndex;
DWORD m_IndexNum;
char m_lpBuffer[PF_VALUEMAXLEN];
// FileProvider部分,函数指针
HINSTANCE m_hInstProvider;
getProviderTypeDLL fp_getProviderType;
OpenDLL fp_Open;
ReadTextDLL fp_ReadText;
WriteTextDLL fp_WriteText;
SaveDLL fp_Save;
CloseDLL fp_Close;
private:
DWORD m_ErrCode;
bool m_bShowErrMSG;
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?