版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/* 公用代码 */* Btype.h#ifndef BTYPE_H #define BTYPE_H/14.2.26-15:18,调试 ISCS 程序出错,针对 b_i64 无法识别添加的/14.2.26-15:18,调试 ISCS 程序出错,针对 b_i64 无法识别添加的/#define unix #define CPU_BITS 64#if defined(WIN32) | defined(_WIN32) | defined(_WIN32_) #define OS_WIN32_#endif#if defined hpux) #define OS_HPUX_ #endif#if defin
2、ed(_alpha) #define OS_TRU64_ #endif#if defined(_unix) | defined(_linux) #define OS_UNIX_#endif#if CPU_BITS != 32 & _CPU_BITS != 64/#error Must define macro CPU_BITS=32(64) #endiftypedef char b_i8;typedef unsigned char b_ui8; typedef b_i8 b_bool;typedef short b_i16;typedef unsigned short b_ui16; type
3、def unsigned short b_wchar; typedefb_i32;typedef unsignedb_ui32;#ifdef _OS_WIN32_typedef unsigned typedefsocklen_t;#else64U64;typedef unsigned long longU64;#endif#ifdef _OS_WIN32_typedef64 b_i64;typedef unsigned _ 64 b_ui64;#else#if _CPU_BITS=64typedef long b_i64;typedef unsigned long b_ui64; #elif
4、CPU_BITS=32typedef long long b_i64;typedef unsigned long long b_ui64; #endif#endiftypedef void* po er_type; typedef long po er_ ;typedef b_ui32 b_in4addr;#ifdef MAX_B_I8 #undef MAX_B_I8 #endif#define MAX_B_I8127#ifdef MAX_B_UI8 #undef MAX_B_UI8 #endif#define MAX_B_UI8255#ifdef MAX_B_I16 #undef MAX_B
5、_I16 #endif#define MAX_B_I1632767#ifdef MAX_B_UI16 #undef MAX_B_UI16 #endif#define MAX_B_UI16 65535#ifdef MAX_B_I32 #undef MAX_B_I32 #endif#define MAX_B_I32 2147483647#ifdef MAX_B_UI32 #undef MAX_B_UI32 #endif#define MAX_B_UI32#ifdef _OS_WIN32_ #define POER_SIZE 4#else#if _CPU_BITS=64#define POER_SI
6、ZE 8 #elif CPU_BITS=32#define POER_SIZE 4 #endif#endif#define b_true 1#define b_false 0 #define b_null (void*)0#ifdef _cplusplus #ifdef OS_WIN32_#define B_EXTERN extern C _declspec( dllexport ) #define B_EXPORT declspec( dllexport )#else#define B_EXTERN extern C #define B_EXPORT#endif #else#ifdef OS
7、_WIN32_#define B_EXTERN declspec( dllexport ) #define B_EXPORT declspec( dllexport )#else#define B_EXTERN #define B_EXPORT#endif #endif#ifndef B_LITTLE_ENDIAN #define B_LITTLE_ENDIAN 1 #endif#ifndef B_BIG_ENDIAN #define B_BIG_ENDIAN 2 #endif#ifdef _OS_WIN32_#define B_BYTE_ORDER B_LITTLE_ENDIAN#else#
8、ifdef OS_HPUX_#if _BIG_ENDIAN = 1#define B_BYTE_ORDER B_BIG_ENDIAN #elif _LITTLE_ENDIAN = 1#define B_BYTE_ORDER B_LITTLE_ENDIAN#else#if ia64 = 1#define B_BYTE_ORDER B_LITTLE_ENDIAN#else#include #endif#endif#else /ifdef _OS_HPUX_ #include #endifpat.h#ifndef B_BYTE_ORDER#if _BYTE_ORDER = LITTLE_ENDIAN
9、 | BYTE_ORDER = LITTLE_ENDIAN #define B_BYTE_ORDER B_LITTLE_ENDIAN#elif BYTE_ORDER = BIG_ENDIAN | BYTE_ORDER = BIG_ENDIAN#define B_BYTE_ORDER B_BIG_ENDIAN #else#error Dont know byte order #endif#endif#endif /ifdef OS_WIN32_#if B_BYTE_ORDER = B_LITTLE_ENDIAN#define FILL_BUFFER_DOUB do uffer, data)dou
10、ble temp_fbd_double = data;*(b_i8*)buffer) = *(b_i64*)& temp_fbd_double) 56;*(b_i8*)buffer + 1) = (*(b_i64*)& temp_fbd_double) 48) & 0 xff;*(b_i8*)buffer + 2) = (*(b_i64*)& temp_fbd_double) 40) & 0 xff;*(b_i8*)buffer + 3) = (*(b_i64*)& temp_fbd_double) 32) & 0 xff;*(b_i8*)buffer + 4) = (*(b_i64*)& t
11、emp_fbd_double) 24) & 0 xff;*(b_i8*)buffer + 5) = (*(b_i64*)& temp_fbd_double) 16) & 0 xff;*(b_i8*)buffer + 6) = (*(b_i64*)& temp_fbd_double) 8) & 0 xff;*(b_i8*)buffer + 7) = *(b_i64*)&_temp_fbd_double) & 0 xff; while(0)#define FILL_BUFFER_FLOAT(buffer, data) do float _temp_fbf_float = data;*(b_i8*)
12、buffer) = *(b_i32*)&temp_fbf_float) 24;*(b_i8*)buffer + 1) = (*(b_i32*)& temp_fbf_float) 16) & 0 xff;*(b_i8*)buffer + 2) = (*(b_i32*)& temp_fbf_float) 8) & 0 xff;*(b_i8*)buffer + 3) = *(b_i32*)&_temp_fbf_float) & 0 xff; while(0)#define FILL_BUFFER_I64(buffer, data) do b_i64 temp_fbi_i64 = data;*(b_i
13、8*)buffer) = *(b_i8*)& temp_fbi_i64 + 7);*(b_i8*)buffer + 1) = *(b_i8*)&_temp_fbi_i64 + 6);*(b_i8*)buffer + 2) = *(b_i8*)&_temp_fbi_i64 + 5);*(b_i8*)buffer + 3) = *(b_i8*)&_temp_fbi_i64 + 4);*(b_i8*)buffer + 4) = *(b_i8*)&_temp_fbi_i64 + 3);*(b_i8*)buffer + 5) = *(b_i8*)&_temp_fbi_i64 + 2);*(b_i8*)b
14、uffer + 6) = *(b_i8*)&_temp_fbi_i64 + 1);*(b_i8*)buffer + 7) = *(b_i8*)&_temp_fbi_i64); while(0)#define FILL_BUFFER_I32(buffer, data) do *(b_i8*)buffer) = (b_i32)data) 24;*(b_i8*)buffer + 1) = (b_i32)data) 16) & 0 xff;*(b_i8*)buffer + 2) = (b_i32)data) 8) & 0 xff;*(b_i8*)buffer + 3) = (b_i32)data) &
15、 0 xff; while(0)#define FILL_BUFFER_I16(buffer, data) do *(b_i8*)buffer) = (b_i16)data) 8;*(b_i8*)buffer + 1) = (b_i16)data) & 0 xff; while(0)#define FILL_LE_BUFFER_DOUB do uffer, data)double temp_fbd_double = data;*(b_i8*)buffer + 7) = *(b_i8*)&_temp_fbd_double + 7);*(b_i8*)buffer + 6) = *(b_i8*)&_
16、temp_fbd_double + 6);*(b_i8*)buffer + 5) = *(b_i8*)&_temp_fbd_double + 5);*(b_i8*)buffer + 4) = *(b_i8*)&_temp_fbd_double + 4);*(b_i8*)buffer + 3) = *(b_i8*)&_temp_fbd_double + 3);*(b_i8*)buffer + 2) = *(b_i8*)&_temp_fbd_double + 2);*(b_i8*)buffer + 1) = *(b_i8*)&_temp_fbd_double + 1);*(b_i8*)buffer
17、) = *(b_i8*)& temp_fbd_double); while(0)#define FILL_LE_BUFFER_FLOAT(buffer, data) do float _temp_fbf_float = data;*(b_i8*)buffer + 3) = *(b_i32*)&_temp_fbf_float) 24;*(b_i8*)buffer + 2) = (*(b_i32*)& temp_fbf_float) 16) & 0 xff;*(b_i8*)buffer + 1) = (*(b_i32*)& temp_fbf_float) 8) & 0 xff;*(b_i8*)bu
18、ffer) = *(b_i32*)& temp_fbf_float) & 0 xff; while(0)#define FILL_LE_BUFFER_I64(buffer, data) do b_i64 temp_fbi_i64 = data;*(b_i8*)buffer + 7) = *(b_i8*)&_temp_fbi_i64 + 7);*(b_i8*)buffer + 6) = *(b_i8*)&_temp_fbi_i64 + 6);*(b_i8*)buffer + 5) = *(b_i8*)&_temp_fbi_i64 + 5);*(b_i8*)buffer + 4) = *(b_i8
19、*)&_temp_fbi_i64 + 4);*(b_i8*)buffer + 3) = *(b_i8*)&_temp_fbi_i64 + 3);*(b_i8*)buffer + 2) = *(b_i8*)&_temp_fbi_i64 + 2);*(b_i8*)buffer + 1) = *(b_i8*)&_temp_fbi_i64 + 1);*(b_i8*)buffer) = *(b_i8*)& temp_fbi_i64); while(0)#define FILL_LE_BUFFER_I32(buffer, data) do *(b_i8*)buffer + 3) = (b_i32)data
20、) 24;*(b_i8*)buffer + 2) = (b_i32)data) 16) & 0 xff;*(b_i8*)buffer + 1) = (b_i32)data) 8) & 0 xff;*(b_i8*)buffer) = (b_i32)data) & 0 xff; while(0)#define FILL_LE_BUFFER_I16(buffer, data) do *(b_i8*)buffer + 1) = (b_i16)data) 8;*(b_i8*)buffer) = (b_i16)data) & 0 xff; while(0)#define GET_BUFFER_DOUB d
21、o uffer, data)double temp_gbd_double;*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbd_double) = *(b_i8*)buffer + 7); temp_gbd_double + 1) = *(b_i8*)buffer + 6); temp_gbd_double + 2) = *(b_i8*)buffer + 5); temp_gbd_double + 3) = *(b_i8*)buffer + 4); temp_gbd_double + 4
22、) = *(b_i8*)buffer + 3); temp_gbd_double + 5) = *(b_i8*)buffer + 2); temp_gbd_double + 6) = *(b_i8*)buffer + 1); temp_gbd_double + 7) = *(b_i8*)buffer);data = temp_gbd_double; while(0)#define GET_BUFFER_FLOAT(buffer, data) do b_i32 temp_gbf_i32;temp_gbf_i32 = (*(b_i8*)buffer) 24)(*(b_i8*)buffer + 1)
23、 16) & 0 xff0000) |(*(b_i8*)buffer + 2) 8) & 0 xff00) (*(b_i8*)buffer + 3) & 0 xff);data = *(float*)&_temp_gbf_i32); while(0)|#define GET_BUFFER_I64(buffer, data) do b_i64 temp_gbi_i64;*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbi_i64) = *(b_i8*)buffer + 7); temp_g
24、bi_i64 + 1) = *(b_i8*)buffer + 6); temp_gbi_i64 + 2) = *(b_i8*)buffer + 5); temp_gbi_i64 + 3) = *(b_i8*)buffer + 4); temp_gbi_i64 + 4) = *(b_i8*)buffer + 3); temp_gbi_i64 + 5) = *(b_i8*)buffer + 2); temp_gbi_i64 + 6) = *(b_i8*)buffer + 1); temp_gbi_i64 + 7) = *(b_i8*)buffer);data = temp_gbi_i64; whi
25、le(0)#define GET_BUFFER_I32(buffer, data) do data = (b_i32)(*(b_i8*)buffer) 24)(*(b_i8*)buffer + 1) 16) & 0 xff0000) |(*(b_i8*)buffer + 2) 8) & 0 xff00) (*(b_i8*)buffer + 3) & 0 xff);| while(0)#define GET_BUFFER_I16(buffer, data) do data = (b_i16)(*(b_i8*)buffer) 8)|(*(b_i8*)buffer + 1) & 0 xff); wh
26、ile(0)#define GET_LE_BUFFER_DOUBuffer, data) do double temp_gbd_double;*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbd_double) = *(b_i8*)buffer); temp_gbd_double + 1) = *(b_i8*)buffer + 1); temp_gbd_double + 2) = *(b_i8*)buffer + 2); temp_gbd_double + 3) = *(b_i8*)bu
27、ffer + 3); temp_gbd_double + 4) = *(b_i8*)buffer + 4); temp_gbd_double + 5) = *(b_i8*)buffer + 5); temp_gbd_double + 6) = *(b_i8*)buffer + 6); temp_gbd_double + 7) = *(b_i8*)buffer + 7);data = temp_gbd_double; while(0)#define GET_LE_BUFFER_FLOAT(buffer, data) do b_i32 temp_gbf_i32;temp_gbf_i32 = (*(
28、b_i8*)buffer + 3) 24)(*(b_i8*)buffer + 2) 16) & 0 xff0000) |(*(b_i8*)buffer + 1) 8) & 0 xff00) (*(b_i8*)buffer) & 0 xff);data = *(float*)&_temp_gbf_i32); while(0)|#define GET_LE_BUFFER_I64(buffer, data) do b_i64 temp_gbi_i64;*(b_i8*)& temp_gbi_i64) = *(b_i8*)buffer);*(b_i8*)& temp_gbi_i64 + 1) = *(b
29、_i8*)buffer + 1);*(b_i8*)& temp_gbi_i64 + 2) = *(b_i8*)buffer + 2);*(b_i8*)& temp_gbi_i64 + 3) = *(b_i8*)buffer + 3);*(b_i8*)& temp_gbi_i64 + 4) = *(b_i8*)buffer + 4);*(b_i8*)& temp_gbi_i64 + 5) = *(b_i8*)buffer + 5);*(b_i8*)& temp_gbi_i64 + 6) = *(b_i8*)buffer + 6);*(b_i8*)& temp_gbi_i64 + 7) = *(b
30、_i8*)buffer + 7); data = temp_gbi_i64; while(0)#define GET_LE_BUFFER_I32(buffer, data) do data = (b_i32)(*(b_i8*)buffer + 3) 24)|(*(b_i8*)buffer + 2) 16) & 0 xff0000) |(*(b_i8*)buffer + 1) 8) & 0 xff00) (*(b_i8*)buffer) & 0 xff);| while(0)#define GET_LE_BUFFER_I16(buffer, data) do data = (b_i16)(*(b
31、_i8*)buffer + 1) 8) |(*(b_i8*)buffer) & 0 xff); while(0) #else#define FILL_BUFFER_DOUB do uffer, data)double temp_fbd_double = data;*(b_i8*)buffer + 7) = *(b_i8*)&temp_fbd_double + 7);*(b_i8*)buffer + 6) = *(b_i8*)&temp_fbd_double + 6);*(b_i8*)buffer + 5) = *(b_i8*)&temp_fbd_double + 5);*(b_i8*)buff
32、er + 4) = *(b_i8*)&temp_fbd_double + 4);*(b_i8*)buffer + 3) = *(b_i8*)&temp_fbd_double + 3);*(b_i8*)buffer + 2) = *(b_i8*)&temp_fbd_double + 2);*(b_i8*)buffer + 1) = *(b_i8*)&temp_fbd_double + 1);*(b_i8*)buffer) = *(b_i8*)&temp_fbd_double); while(0)#define FILL_BUFFER_FLOAT(buffer, data) do float te
33、mp_fbf_float = data;*(b_i8*)buffer + 3) = *(b_i32*)&temp_fbf_float) & 0 xff;*(b_i8*)buffer + 2) = (*(b_i32*)&temp_fbf_float) 8) & 0 xff;*(b_i8*)buffer + 1) = (*(b_i32*)&temp_fbf_float) 16) & 0 xff;*(b_i8*)buffer) = *(b_i32*)&temp_fbf_float) 24; while(0)#define FILL_BUFFER_I64(buffer, data) do b_i64
34、temp_fbi_i64 = data;*(b_i8*)buffer + 7) = *(b_i8*)&temp_fbi_i64 + 7);*(b_i8*)buffer + 6) = *(b_i8*)&temp_fbi_i64 + 6);*(b_i8*)buffer + 5) = *(b_i8*)&temp_fbi_i64 + 5);*(b_i8*)buffer + 4) = *(b_i8*)&temp_fbi_i64 + 4);*(b_i8*)buffer + 3) = *(b_i8*)&temp_fbi_i64 + 3);*(b_i8*)buffer + 2) = *(b_i8*)&temp
35、_fbi_i64 + 2);*(b_i8*)buffer + 1) = *(b_i8*)&temp_fbi_i64 + 1);*(b_i8*)buffer) = *(b_i8*)&temp_fbi_i64); while(0)#define FILL_BUFFER_I32(buffer, data) do *(b_i8*)buffer + 3) = (b_i32)data) & 0 xff;*(b_i8*)buffer + 2) = (b_i32)data) 8) & 0 xff;*(b_i8*)buffer + 1) = (b_i32)data) 16) & 0 xff;*(b_i8*)bu
36、ffer) = (b_i32)data) 24); while(0)#define FILL_BUFFER_I16(buffer, data) do *(b_i8*)buffer + 1) = (b_i16)data) & 0 xff;*(b_i8*)buffer) = (b_i16)data) 8; while(0)#define FILL_LE_BUFFER_DOUB do uffer, data)double temp_fbd_double = data;*(b_i8*)buffer) = *(b_i8*)&temp_fbd_double + 7);*(b_i8*)buffer + 1)
37、 = *(b_i8*)&temp_fbd_double + 6);*(b_i8*)buffer + 2) = *(b_i8*)&temp_fbd_double + 5);*(b_i8*)buffer + 3) = *(b_i8*)&temp_fbd_double + 4);*(b_i8*)buffer + 4) = *(b_i8*)&temp_fbd_double + 3);*(b_i8*)buffer + 5) = *(b_i8*)&temp_fbd_double + 2);*(b_i8*)buffer + 6) = *(b_i8*)&temp_fbd_double + 1);*(b_i8*
38、)buffer + 7) = *(b_i8*)&temp_fbd_double); while(0)#define FILL_LE_BUFFER_FLOAT(buffer, data) do float temp_fbf_float = data;*(b_i8*)buffer) = *(b_i32*)&temp_fbf_float) & 0 xff;*(b_i8*)buffer + 1) = (*(b_i32*)&temp_fbf_float) 8) & 0 xff;*(b_i8*)buffer + 2) = (*(b_i32*)&temp_fbf_float) 16) & 0 xff;*(b
39、_i8*)buffer + 3) = *(b_i32*)&temp_fbf_float) 24; while(0)#define FILL_LE_BUFFER_I64(buffer, data) do b_i64 temp_fbi_i64 = data;*(b_i8*)buffer) = *(b_i8*)&temp_fbi_i64 + 7);*(b_i8*)buffer + 1) = *(b_i8*)&temp_fbi_i64 + 6);*(b_i8*)buffer + 2) = *(b_i8*)&temp_fbi_i64 + 5);*(b_i8*)buffer + 3) = *(b_i8*)
40、&temp_fbi_i64 + 4);*(b_i8*)buffer + 4) = *(b_i8*)&temp_fbi_i64 + 3);*(b_i8*)buffer + 5) = *(b_i8*)&temp_fbi_i64 + 2);*(b_i8*)buffer + 6) = *(b_i8*)&temp_fbi_i64 + 1);*(b_i8*)buffer + 7) = *(b_i8*)&temp_fbi_i64); while(0)#define FILL_LE_BUFFER_I32(buffer, data) do *(b_i8*)buffer) = (b_i32)data) & 0 x
41、ff;*(b_i8*)buffer + 1) = (b_i32)data) 8) & 0 xff;*(b_i8*)buffer + 2) = (b_i32)data) 16) & 0 xff;*(b_i8*)buffer + 3) = (b_i32)data) 24; while(0)#define FILL_LE_BUFFER_I16(buffer, data) do *(b_i8*)buffer) = (b_i16)data) & 0 xff;*(b_i8*)buffer + 1) = (b_i16)data) 24)(*(b_i8*)buffer + 1) 16) & 0 xff0000
42、) |(*(b_i8*)buffer + 2) 8) & 0 xff00) (*(b_i8*)buffer + 3) & 0 xff);data = *(float*)&_temp_gbf_i32); while(0)|#define GET_BUFFER_I64(buffer, data) do b_i64 temp_gbi_i64;*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbi_i64) = *(b_i8*)buffer + 7);temp_gbi_i64 + 1) = *(b
43、_i8*)buffer + 6); temp_gbi_i64 + 2) = *(b_i8*)buffer + 5); temp_gbi_i64 + 3) = *(b_i8*)buffer + 4); temp_gbi_i64 + 4) = *(b_i8*)buffer + 3); temp_gbi_i64 + 5) = *(b_i8*)buffer + 2); temp_gbi_i64 + 6) = *(b_i8*)buffer + 1); temp_gbi_i64 + 7) = *(b_i8*)buffer);data = temp_gbi_i64; while(0)#define GET_
44、BUFFER_I32(buffer, data) do data = (b_i32)(*(b_i8*)buffer) 24)(*(b_i8*)buffer + 1) 16) & 0 xff0000) |(*(b_i8*)buffer + 2) 8) & 0 xff00) (*(b_i8*)buffer + 3) & 0 xff);| while(0)#define GET_BUFFER_I16(buffer, data) do data = (b_i16)(*(b_i8*)buffer) 8)|(*(b_i8*)buffer + 1) & 0 xff); while(0)#define GET
45、_LE_BUFFER_DOUBuffer, data) do double temp_gbd_double;*(b_i8*)& temp_gbd_double) = *(b_i8*)buffer + 7);*(b_i8*)& temp_gbd_double + 1) = *(b_i8*)buffer + 6);*(b_i8*)& temp_gbd_double + 2) = *(b_i8*)buffer + 5);*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbd_double + 3) = *(b_i8*)buffer + 4); te
46、mp_gbd_double + 4) = *(b_i8*)buffer + 3); temp_gbd_double + 5) = *(b_i8*)buffer + 2); temp_gbd_double + 6) = *(b_i8*)buffer + 1); temp_gbd_double + 7) = *(b_i8*)buffer);data = temp_gbd_double; while(0)#define GET_LE_BUFFER_FLOAT(buffer, data) do b_i32 temp_gbf_i32;temp_gbf_i32 = (*(b_i8*)buffer + 3)
47、 24)(*(b_i8*)buffer + 2) 16) & 0 xff0000) |(*(b_i8*)buffer + 1) 8) & 0 xff00) (*(b_i8*)buffer) & 0 xff);data = *(float*)&_temp_gbf_i32); while(0)|#define GET_LE_BUFFER_I64(buffer, data) do b_i64 temp_gbi_i64;*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&*(b_i8*)&temp_gbi_i64) = *(b_
48、i8*)buffer + 7); temp_gbi_i64 + 1) = *(b_i8*)buffer + 6); temp_gbi_i64 + 2) = *(b_i8*)buffer + 5); temp_gbi_i64 + 3) = *(b_i8*)buffer + 4); temp_gbi_i64 + 4) = *(b_i8*)buffer + 3); temp_gbi_i64 + 5) = *(b_i8*)buffer + 2); temp_gbi_i64 + 6) = *(b_i8*)buffer + 1); temp_gbi_i64 + 7) = *(b_i8*)buffer);d
49、ata = temp_gbi_i64; while(0)#define GET_LE_BUFFER_I32(buffer, data) do data = (b_i32)(*(b_i8*)buffer + 3) 24)|(*(b_i8*)buffer + 2) 16) & 0 xff0000) |(*(b_i8*)buffer + 1) 8) & 0 xff00) (*(b_i8*)buffer) & 0 xff);| while(0)#define GET_LE_BUFFER_I16(buffer, data) do data = (b_i16)(*(b_i8*)buffer + 1) 8)
50、 |(*(b_i8*)buffer) & 0 xff); while(0) #endifextern b_i32 atoi32(char* str); extern b_i64 atoi64(char* str); extern void bsleep(b_i32 mills);extern po er_type bheap_alloc(b_i32 msize); extern void bheap_free(po er_type mem);extern po er_type bheap_realloc(po er_type old_mem, b_i32 new_msize);#endif*
51、DbOracle.h#ifndef _dboracle_ #define _dboracle_#include #include #include using namespace oracle:occi; using namespatd;class COraclepublic:COracle();bool connectDb(const std:string& usr=SYSTEM, const std:string& pwd=Cn123456 , const std:string&sid=33:1521/ORCL.LOCAL );bool executeSql(const std:strin
52、g& sql);void close(); virtual COracle();void clean();/ 处理游标的,之前查询数据库次错误的解决办法/Connection* my_conn; oracle:occi:ResultSet* rs;private :std:string oracle_usr; std:string oracle_pwd; std:string oracle_sid;oracle:occi:Connection* my_conn;oracle:occi:Environment* env; std:string oracle_sqlstr; oracle:occi
53、:S ement* stmt;#endif* DbOracle.cpp#include DbOracle.hCOracle:COracle()env=Environment:createEnvironment(Environment:DEFAULT);bool COracle: connectDb(const string& usr, const string& pwd, const string& sid)oracle_usr = usr; oracle_pwd = pwd; oracle_sid = sid;my_conn = env-createConnection(oracle_usr
54、, oracle_pwd, oracle_sid); if(my_conn = NULL)return false ;elsereturn true ;bool COracle:executeSql(const string& sql)trycout begin executesql createS ement(); oracle_sqlstr = sql;stmt-setSQL(oracle_sqlstr);/stmt-mit(TRUE);coutoracle_sqlstrexecuteQuery()/*if(rs-next()cout getString(1) endl;*/ return
55、 true ;elsecout 操作数据库出错! terminateS ement(stmt);catch(exception &e)/ throw execute failed;cerr exiting: e.what() terminateConnection(my_conn);void COracle:clean()stmt-closeResultSet(rs);my_conn-terminateS ement(stmt);COracle:COracle()Environment:terminateEnvironment(env);* Exception.h#ifndef FTPC NT
56、_FTPEXCEPTION_h #define FTPC NT_FTPEXCEPTION_h#ifdef WIN32#pragma warning(disable : 4786)/#ifdef FTPC NT_EXPORTS/#define FTPC NT_API _declspec(dllexport)/#else/#define FTPC NT_API _declspec(dllimport)/#endif/#else/#define FTPC NT_API #endif#include class CFtpExceptionpublic:typedef enumNO_CONNECTION
57、, CONNECTION_LOST, TCPIP_ERROR, SERVER_ERROR, LOCAL_ERROR, TIMEOUT_ERROR ExceptType; CFtpException(ExceptType s us,sysS us = 0,const char* operation = , const char* sysText = );CFtpException();ExceptType S us() const return(mS us); const char* S usText();SysS us() const return(mSysS us); const char*
58、 Operation() const return(mOperation); const char* SysText();s ic void SetInstance(void* instance) mhInstance = instance; CFtpException& operator=(const CFtpException& rhs); CFtpException(const CFtpException& exception);protected:ExceptType mS us;/ exception typemSysS us;/ operating system s us (whe
59、n applicable)char mOperation132; / operation being performedchar mSysText512;/ text asso ted with operating system s us s ic void* mhInstance;#endif* Modbus.cpp#include Modbus.hhandlerModbus(char (&Buf)12 ,CSocket *ConSocket)/cout enter modbus endl;/首地址/取地址个数,车站 id/应答报文_addr; num,S ion_id;char respo
60、nse260;_addr = (unsigned char)Buf8)*256 + (unsigned char)Buf9; num = (unsigned char)Buf10*256) + (unsigned char)Buf11;/cout num = num endl;/SysName = ChooseSys(Buf6); S ion_id = Buf6;/*pr fn,Buf7);pr f(The frist address is %fn,_addr); pr f(The number is %dn,num);cout The System Name is SysName endl;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调整产品结构满足多样化需求趋势
- 2026陕西西安碑林仁华医院招聘18人备考题库含答案详解(满分必刷)
- 2026南昌市劳动保障事务代理中心招聘外包项目人员11人备考题库及答案详解1套
- 2026恒丰银行青岛分行社会招聘10人备考题库及答案详解(名校卷)
- 2026重庆医科大学附属康复医院手术麻醉科、耳鼻咽喉科护理招聘2人备考题库附答案详解(考试直接用)
- 2026年吉安市青原区睿才人力资源有限公司见习人员招募备考题库含答案详解(b卷)
- 2026新疆新星人才发展有限公司代新疆新星国有资本投资集团有限公司招聘2人备考题库含答案详解(基础题)
- 中国科学院苏州纳米技术与纳米仿生研究所生物医学部韩廉勇项目组招聘备考题库(江苏)及参考答案详解1套
- 2026浙江金华浦江县中医院招聘编外人员6人备考题库含答案详解(培优b卷)
- 2026江苏扬州对外人才开发服务有限公司招工2人备考题库含答案详解(综合卷)
- 12.1至12.4 集员辨识的定义及发展
- 房车全车电路施工技术交底
- 基于复杂网络的城市轨道交通-公交网络鲁棒性分析与优化
- 高铁站建筑节能方案设计
- 酒店安全管理制度
- 电动车逆行知识培训内容课件
- 医养中心突发事件应急预案
- 2025房屋买卖合同范本(下载)
- 2025年哈尔滨工业大学管理服务岗位招聘考试笔试试题(含答案)
- (2025年标准)山地开路协议书
- 2025年陕西高中学业水平合格性考试化学试卷真题(含答案)
评论
0/150
提交评论