cvsetmemorymanager_chdl.c

来自「guide and some example with visualC++」· C语言 代码 · 共 53 行

C
53
字号
/* Copyright (c) 2001-2002 by SoftIntegration, Inc. All Rights Reserved */#include <cv.h>#include <ch.h>typedef  void* (CV_CDECL *allocFunc)(size_t, void*);typedef  int (CV_CDECL *freeFunc)(void*, void*);static ChInterp_t interp;static void* allocFunc_funarg(size_t Arg1, void* Arg2);static void* setallocFunc_funptr;static int freeFunc_funarg(void* Arg1, void* Arg2);static void* setfreeFunc_funptr;EXPORTCH void cvSetMemoryManager_chdl(void *varg) {    va_list ap;    allocFunc allocFuncptr_ch, allocFuncptr_c=NULL;    freeFunc freeFuncptr_ch, freeFuncptr_c=NULL;    void *userdata = NULL;    Ch_VaStart(interp, ap, varg);    allocFuncptr_ch = Ch_VaArg(interp, ap, allocFunc );    setallocFunc_funptr = (void *)allocFuncptr_ch;    if (allocFuncptr_ch != NULL)  {        allocFuncptr_c = (allocFunc)allocFunc_funarg;    }    freeFuncptr_ch = Ch_VaArg(interp, ap, freeFunc);    setfreeFunc_funptr = (void *)freeFuncptr_ch;    if (freeFuncptr_ch != NULL)  {        freeFuncptr_c = (freeFunc)freeFunc_funarg;    }    userdata = Ch_VaArg(interp, ap, void*);    cvSetMemoryManager(allocFuncptr_c, freeFuncptr_c, userdata);    Ch_VaEnd(interp, ap);}static void*  allocFunc_funarg(size_t Arg1, void* Arg2)    {     void*  retval;     Ch_CallFuncByAddr(interp, setallocFunc_funptr, &retval, Arg1, Arg2);     return retval;}static int  freeFunc_funarg(void* Arg1, void* Arg2)    {   int retval;   Ch_CallFuncByAddr(interp, setfreeFunc_funptr, &retval, Arg1, Arg2);   return retval;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?