//typedef.h一些公共的宏定义 #ifndef __TYPEDEF_H__ #define __TYPEDEF_H__ #include "vmlog.h" #include "vmgraph.h" #include "vmio.h" #define LOG_FILE "E:\\mre\\MtidLog.txt" void* wbh_malloc(int size); void wbh_free(void* ptr); void wbh_write(char* path, char* mode, char* buf); #define WBH_MALLOC(size) wbh_malloc(size); #define WBH_FREE(ptr) wbh_free(ptr); ptr = NULL; #ifdef __cplusplus #define DECLS_BEGIN extern "C" { #define DECLS_END } #else #define DECLS_BEGIN #define DECLS_END #endif #ifdef __arm #define _INLINE_ __inline #elif defined(_MSC_VER) #define _INLINE_ // vc c language compiler not support inline #endif #ifdef __arm #define _WBH_FILENAME_ __MODULE__ #define _WBH_FUNC_ __func__ #define _WBH_LINE_ __LINE__ #elif defined(_MSC_VER) #define _WBH_FILENAME_ __FILE__ #define _WBH_LINE_ __LINE__ #if (_MSC_VER > 1200) #define _WBH_FUNC_ __FUNCTION__ /* VS2003,2005,2008 etc */ #else #define _WBH_FUNC_ "" /* vc6 no support _FUNCTION_ */ #endif #endif #define return_if_fail(v) if(!v)\ {\ vm_log_info("%s line:%d failed.\n", _WBH_FILENAME_, _WBH_LINE_);\ return;\ } #define return_val_if_fail(v,r) if(!v)\ {\ vm_log_info("%s line:%d failed.\n", _WBH_FILENAME_, _WBH_LINE_);\ return r;\ } #endif /*__TYPEDEF_H__*/ //typedef.c 几个公共函数 #include "typedef.h" void* wbh_malloc(int size) { void* ptr = NULL; ptr = vm_malloc(size); if(NULL != ptr) memset(ptr, 0, size); return ptr; } void wbh_free(void* ptr) { vm_free(ptr); } void wbh_write(char* path, char* mode, char* buf) { VMWCHAR w_path[256] = {0}; VMFILE file_handle = -1; VMINT m = MODE_CREATE_ALWAYS_WRITE; VMUINT file_size = 0; vm_gb2312_to_ucs2(w_path, 256, path); if(0 == strcmp(mode, "w")) m = MODE_CREATE_ALWAYS_WRITE; else if(0 == strcmp(mode, "a")) m = MODE_APPEND; file_handle = vm_file_open(w_path, m, FALSE); if(file_handle < 0) { file_handle = vm_file_open(w_path, MODE_CREATE_ALWAYS_WRITE, FALSE); } if(file_handle < 0) { return; } if(m = MODE_APPEND) { VMINT ret = -1; ret = vm_file_getfilesize(file_handle, (VMUINT *)&file_size); if(ret != 0) { vm_file_close(file_handle); return; } ret = vm_file_seek(file_handle, file_size, BASE_BEGIN); } vm_file_write(file_handle, buf, strlen(buf), &file_size); vm_file_close(file_handle); }
mre下的控件实现(一、公共的宏定义)
最新推荐文章于 2024-06-23 09:39:00 发布