create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern (Operator)

Name

create_memory_block_externT_create_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern — Anlegen eines Speicherblocks aus einem externen Pointer.

Warnung

Es wird nicht empfohlen, den Operator create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern in HDevelop zu verwenden.

Signatur

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

Beschreibung

create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern legt einen Speicherblock an und gibt dessen Handle MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle zurück. PointerPointerPointerPointerpointerpointer ist ein Datenzeiger auf den Anfang des anzulegenden Speicherblocks. SizeSizeSizeSizesizesize bestimmt die Größe des anzulegenden Speicherblocks in Byte. FreeFunctionFreeFunctionFreeFunctionFreeFunctionfreeFunctionfree_function ist eine optionale Callback Funktion, die den Speicher auf den PointerPointerPointerPointerpointerpointer zeigt, freigibt. Diese Funktion muss folgende Signatur haben void FreeFunction(void* ptr); und wird beim Löschen von MemoryBlockHandleMemoryBlockHandleMemoryBlockHandleMemoryBlockHandlememoryBlockHandlememory_block_handle mit der __cdecl Aufrufkonvention aufgerufen. In diesem Fall erlangt HALCON Besitz über den Speicher und gibt ihn mittels der Callback Funktion frei. Falls der Speicher nicht freigegeben werden soll, also HALCON den Speicher nicht besitzen soll, kann der NULL-Pointer übergeben werden.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

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

Datenzeiger auf einen Speicherblock.

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

Größe des Speicherblocks.

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

Funktion um den Speicherblock freizugeben.

Defaultwert: 0

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

Handle des Speicherblocks.

Ergebnis

Sind die Parameterwerte korrekt, gibt create_memory_block_externcreate_memory_block_externCreateMemoryBlockExternCreateMemoryBlockExternCreateMemoryBlockExterncreate_memory_block_extern den Wert 2 (H_MSG_TRUE) zurück. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

get_memory_block_ptrget_memory_block_ptrGetMemoryBlockPtrGetMemoryBlockPtrGetMemoryBlockPtrget_memory_block_ptr, compare_memory_blockcompare_memory_blockCompareMemoryBlockCompareMemoryBlockCompareMemoryBlockcompare_memory_block, memory_block_to_imagememory_block_to_imageMemoryBlockToImageMemoryBlockToImageMemoryBlockToImagememory_block_to_image, write_memory_blockwrite_memory_blockWriteMemoryBlockWriteMemoryBlockWriteMemoryBlockwrite_memory_block

Alternativen

create_memory_block_extern_copycreate_memory_block_extern_copyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopyCreateMemoryBlockExternCopycreate_memory_block_extern_copy

Modul

Foundation