create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern (算子名称)
名称
create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern — Create a memory block from an external pointer.
警告
It is not recommended to use 该算子 create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern
in HDevelop.
参数签名
描述
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.
Default:
0
MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle (output_control) memory_block → HMemoryBlock, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the memory block.
结果
如果参数均有效,算子 create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern
返回值 2 (
H_MSG_TRUE)
. 如有必要,将引发异常。
可能的后置算子
get_memory_block_ptrget_memory_block_ptrGetMemoryBlockPtrGetMemoryBlockPtrGetMemoryBlockPtrget_memory_block_ptr
可替代算子
create_memory_block_extern_copycreate_memory_block_extern_copyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopycreate_memory_block_extern_copy
模块
Foundation