00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00020 #ifndef __DXCUT_DEX_H
00021 #define __DXCUT_DEX_H
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 #ifndef WIN32
00027 typedef long long int dx_long;
00028 typedef unsigned long long int dx_ulong;
00029 typedef int dx_int;
00030 typedef unsigned int dx_uint;
00031 typedef short dx_short;
00032 typedef unsigned short dx_ushort;
00033 typedef char dx_byte;
00034 typedef unsigned char dx_ubyte;
00035 #else
00036 typedef __int64_t dx_long;
00037 typedef __uint64_t dx_ulong;
00038 typedef __int32_t dx_int;
00039 typedef __uint32_t dx_uint;
00040 typedef __int16_t dx_short;
00041 typedef __uint16_t dx_ushort;
00042 typedef char dx_byte;
00043 typedef unsigned char dx_ubyte;
00044 #endif
00045
00051 typedef struct {
00052 dx_uint cnt;
00053 char s[1];
00054 } ref_str;
00055
00060 extern
00061 ref_str* dxc_induct_str(const char* s);
00062
00069 extern
00070 ref_str* dxc_copy_str(ref_str* s);
00071
00076 extern
00077 void dxc_free_str(ref_str* s);
00078
00082 typedef struct {
00083 dx_uint cnt;
00084 ref_str* s[1];
00085 } ref_strstr;
00086
00091 extern
00092 ref_strstr* dxc_create_strstr(dx_uint sz);
00093
00100 extern
00101 ref_strstr* dxc_copy_strstr(ref_strstr* s);
00102
00107 extern
00108 void dxc_free_strstr(ref_strstr* s);
00109
00110 #ifdef __cplusplus
00111 }
00112 #endif
00113 #endif // __DXCUT_DEX_H