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);

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值