You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
6.5 KiB
C

2 years ago
/*********************************************************************
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD>Ӷϵ<EFBFBD><EFBFBD>+<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ӿ<EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2018/11/17
*<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>־: 2018/11/17 logos <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: <EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ӿڶ<EFBFBD><EFBFBD>ǵ<EFBFBD><EFBFBD>߳<EFBFBD>ִ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵߳<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪΪ<EFBFBD>˷<EFBFBD>ֹ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʧԭ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳAPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ
open<EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>˰<EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
***********************************************************************/
#pragma once
#ifndef DLL_INCLUDE_FILES_H
#define DLL_INCLUDE_FILES_H
#ifndef EXPORT_C
#define EXPORT_C extern "C"
#endif
#ifndef WINAPI
#define WINAPI __stdcall
#endif
#ifndef uint
#define uint unsigned int
#endif
class ifiles
{//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> -- <EFBFBD>򿪺<EFBFBD><EFBFBD>α<EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<EFBFBD><EFBFBD>
*Intput: file <EFBFBD>ļ<EFBFBD>ȫ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׺
version <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Open(const char* file, int version = 0) = 0;
/****************************************************
*Function: <EFBFBD>ر<EFBFBD><EFBFBD>ļ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ˢ<EFBFBD>µ<EFBFBD>Ӳ<EFBFBD><EFBFBD>
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>NULL
******************************************************/
virtual int Close() = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Clear() = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD>С -- <EFBFBD><EFBFBD>ftell<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ǰ<EFBFBD>α<EFBFBD>λ<EFBFBD><EFBFBD>>=0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
virtual int Pos() = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD>ʵ<EFBFBD>ʴ<EFBFBD>С
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>С>=0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
virtual int Size() = 0;
/****************************************************
*Function: <EFBFBD>жϵ<EFBFBD>ǰ<EFBFBD>α<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ĩβ -- <EFBFBD><EFBFBD>feof<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩβ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>0
******************************************************/
virtual int IsEof() = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>α<EFBFBD>λ<EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD>fseek<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: offset <EFBFBD><EFBFBD><EFBFBD><EFBFBD>_Origin<EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_Origin SEEK_SET-<EFBFBD>ļ<EFBFBD>ͷ SEEK_END-<EFBFBD>ļ<EFBFBD>ĩβ SEEK_CUR-<EFBFBD><EFBFBD>ǰλ<EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Seek(int offset, int _Origin) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>α<EFBFBD>λ<EFBFBD>õ<EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>?
*Intput: nline <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<EFBFBD>õڼ<EFBFBD><EFBFBD><EFBFBD>?
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: <EFBFBD>˽ӿڽ<EFBFBD><EFBFBD><EFBFBD>ascii<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>Ч
******************************************************/
virtual int SeekLine(int nline) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD>fflush<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: NULL
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Flush() = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD>fgets<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: psz <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
maxcnt ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD>С
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<EFBFBD><EFBFBD>ȣ<EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><=0
*PS: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n\0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
******************************************************/
virtual int Reads(char* psz, uint maxcnt) = 0;
/****************************************************
*Function: д<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> -- <EFBFBD><EFBFBD>fputs<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: psz <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
*PS: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>д<EFBFBD><EFBFBD>\r\n
******************************************************/
virtual int Writes(const char* psz) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD>fread<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: psz <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
maxcnt ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD>С
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<EFBFBD><EFBFBD>ȣ<EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><=0
******************************************************/
virtual int Read(void* psz, uint maxcnt) = 0;
/****************************************************
*Function: д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD>ļ<EFBFBD> -- <EFBFBD><EFBFBD>fwrite<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>÷<EFBFBD>ʽ
*Intput: psz <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
ncnt <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0
******************************************************/
virtual int Write(const void* psz, uint ncnt) = 0;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
EXPORT_C int WINAPI ifiles_open(ifiles* p, const char* file, int version = 0);
EXPORT_C int WINAPI ifiles_close(ifiles* p);
EXPORT_C int WINAPI ifiles_clear(ifiles* p);
EXPORT_C int WINAPI ifiles_pos(ifiles* p);
EXPORT_C int WINAPI ifiles_size(ifiles* p);
EXPORT_C int WINAPI ifiles_iseof(ifiles* p);
EXPORT_C int WINAPI ifiles_flush(ifiles* p);
EXPORT_C int WINAPI ifiles_seek(ifiles* p, int offset, int _origin);
EXPORT_C int WINAPI ifiles_seek_line(ifiles* p, int nline);
EXPORT_C int WINAPI ifiles_reads(ifiles* p, char* psz, uint maxcnt);
EXPORT_C int WINAPI ifiles_writes(ifiles* p, const char* psz);
EXPORT_C int WINAPI ifiles_read(ifiles* p, void* psz, uint maxcnt);
EXPORT_C int WINAPI ifiles_write(ifiles* p, const void* psz, uint ncnt);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>file<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: NULL
*Output: h file<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI CreateFiles(ifiles** h);
/****************************************************
*Function: <EFBFBD>ͷ<EFBFBD>file<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: NULL
*Output: h file<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 <EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI ReleaseFiles(ifiles** h);
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>