mre下的控件实现(一、公共的宏定义)
//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);
}
不积跬步无以至千里,不积小流无以成江河。

浙公网安备 33010602011771号