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
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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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