create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern (Operator)

名称

create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern — 从外部指针创建内存块。

警告

It is not recommended to use the operator create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern in HDevelop.

签名

create_memory_block_extern( : : Pointer, Size, FreeFunction : MemoryBlockHandle)

Herror T_create_memory_block_extern(const Htuple Pointer, const Htuple Size, const Htuple FreeFunction, Htuple* MemoryBlockHandle)

void CreateMemoryBlockExtern(const HTuple& Pointer, const HTuple& Size, const HTuple& FreeFunction, HTuple* MemoryBlockHandle)

void HMemoryBlock::HMemoryBlock(void* Pointer, Hlong Size, void* FreeFunction)

void HMemoryBlock::CreateMemoryBlockExtern(void* Pointer, Hlong Size, void* FreeFunction)

static void HOperatorSet.CreateMemoryBlockExtern(HTuple pointer, HTuple size, HTuple freeFunction, out HTuple memoryBlockHandle)

public HMemoryBlock(IntPtr pointer, int size, IntPtr freeFunction)

void HMemoryBlock.CreateMemoryBlockExtern(IntPtr pointer, int size, IntPtr freeFunction)

def create_memory_block_extern(pointer: int, size: int, free_function: int) -> HHandle

描述

create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern creates a memory block and returns its handle MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle. PointerPointerPointerPointerpointerpointer is a data pointer to the beginning of the memory block. SizeSizeSizeSizesizesize controls the size in bytes of the memory block. FreeFunctionFreeFunctionFreeFunctionFreeFunctionfreeFunctionfree_function is an optional callback function that frees the memory pointed to by PointerPointerPointerPointerpointerpointer. This function must have the following signature void FreeFunction(void* ptr); and will be called using __cdecl calling convention when deleting MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle. Hence, HALCON gains ownership over the memory in this case and releases the memory via the callback function. If the memory shall not be released when deleting MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle, i.e., HALCON shall not own the memory, the NULL-Pointer can be passed.

注意

This operator does not copy any data. If a copy is required create_memory_block_extern_copycreate_memory_block_extern_copyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopycreate_memory_block_extern_copy can be used.

执行信息

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

参数

PointerPointerPointerPointerpointerpointer (input_control)  pointer HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Data pointer of the memory block.

SizeSizeSizeSizesizesize (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Size of the memory block.

FreeFunctionFreeFunctionFreeFunctionFreeFunctionfreeFunctionfree_function (input_control)  pointer HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Function to free the memory block.

默认值: 0

MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle (output_control)  memory_block HMemoryBlock, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the memory block.

结果

If the parameters are valid, the operator create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern returns the value 2 ( H_MSG_TRUE) . If necessary, an exception is raised.

可能的后继算子

get_memory_block_ptrget_memory_block_ptrGetMemoryBlockPtrGetMemoryBlockPtrGetMemoryBlockPtrget_memory_block_ptr

替代算子

create_memory_block_extern_copycreate_memory_block_extern_copyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopycreate_memory_block_extern_copy

模块

Foundation