create_memory_block_extern — Anlegen eines Speicherblocks aus einem externen Pointer.
Es wird nicht empfohlen, den Operator create_memory_block_extern in
HDevelop zu verwenden.
create_memory_block_extern( : : Pointer, Size, FreeFunction : MemoryBlockHandle)
create_memory_block_extern legt einen Speicherblock an und gibt dessen
Handle MemoryBlockHandle zurück. Pointer ist ein Datenzeiger
auf den Anfang des anzulegenden Speicherblocks. Size bestimmt die
Größe des anzulegenden Speicherblocks in Byte. FreeFunction ist eine
optionale Callback Funktion, die den Speicher auf den Pointer zeigt,
freigibt. Diese Funktion muss folgende Signatur haben
void FreeFunction(void* ptr);
und wird beim Löschen von MemoryBlockHandle 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.
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.
Pointer (input_control) pointer → (integer)
Datenzeiger auf einen Speicherblock.
Size (input_control) integer → (integer)
Größe des Speicherblocks.
FreeFunction (input_control) pointer → (integer)
Funktion um den Speicherblock freizugeben.
Default: 0
MemoryBlockHandle (output_control) memory_block → (handle)
Handle des Speicherblocks.
Sind die Parameterwerte korrekt, gibt create_memory_block_extern den
Wert 2 (
H_MSG_TRUE)
zurück. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
get_memory_block_ptr,
compare_memory_block,
memory_block_to_image,
write_memory_block
create_memory_block_extern_copy
Foundation