.h文件
#pragma once
#include <Windows.h>
#include <WinBase.h>
#include <atltime.h>
typedef enum
{
CODE_TYPE_UTF8 = 0x03,
CODE_TYPE_ANSI,
CODE_TYPE_UNICODE_LE ,
CODE_TYPE_UNICODE_BE,
}CODE_TYPE;
typedef enum
{
TANSI = 0x12,
TUTF_8,
TUNICODE,
}FileType;
#define MAX_LENGTH 260
#define RELEASE(x) {if(x != NULL ){delete x;x=NULL;}}
#define RELEASEHANDLE(h) {if(h!=NULL && h!=INVALID_HANDLE_VALUE){CloseHandle(h);h=NULL;}}
class CFileEx
{
public:
CFileEx(void);
~CFileEx(void);
private:
CString _strIniFileName;
CString _strLogFileName;
TCHAR _szCurrentPath[MAX_PATH];
private:
CString IntegerToString(int nInteger);
CString GetTimeNow(bool bIsYear = false);
int UnicodeToAnsi(wchar_t * cbSrc, char* cbDest ,size_t _sizewords);
public: //一般文件的读取
virtual int GetFileSizeX(HANDLE hFile,LPDWORD dwSize);
virtual ULONG ReadTextFileA(const LPCTSTR lpcPath ,char *lpcBuffer);
virtual int WriteTextFileA(const LPCTSTR lpcPath ,const char* lpBuffer);
virtual ULONG ReadTextFileW(const LPCTSTR lpcPath ,wchar_t* lpcBuffer);
virtual int WriteTextFileW(const LPCTSTR lpcPath ,const wchar_t *lpBuffer);
public: //Ini文件的读取
//设置名称
int SetIniFileName(LPCTSTR szIniFileName);
//获取名称
int GetIniFileName(CString& StrIniFileName);
//设置字符
int SetString(CString strAppName,LPCTSTR KeyName, LPCTSTR Data);
//获取字符
CString GetString(CString strAppName,CString KeyName,CString Default = _T(""));
//设置整数
int SetInteger(CString strAppName,CString KeyName,int Data);
//获取整数
int GetInteger(CString strAppName,CString KeyName,int Default = 0);
public:
int CheckFileType(LPCTSTR szFilePath ,CODE_TYPE *LPCodeType);
//资源文件加载
virtual int LoadFileFromRes(UINT nResID, LPCTSTR szResType, LPCTSTR szFilePath);