Das Übergeben von .NET -Objekten in nicht verwaltete Datenstrukturen
Posted: 14 Feb 2025, 08:57
Ich möchte die native Bibliothek libfoo in meinem c# Code verwenden. Es ist Header sieht wie folgt aus: < /p>
Ich muss den von foo_parser erforderlichen Rückruf für meine C# -Bindungen implementieren. Ich möchte, dass die Bindungen ein Stream -Objekt aufnehmen und auf eine Weise einwickeln, die sicher verwendet und von foo_parser gespeichert und gespeichert werden kann. Ist es möglich?
Code: Select all
#ifndef FOO_H
#define FOO_H
/* object for handling the file format foo */
typedef struct foo foo;
/* parser for file format foo */
typedef struct foo_parser foo_parser;
/* read from a stream of bytes */
typedef size_t (*fn_read)(void *stream, void *buffer, size_t size);
/* create parser from an arbitrary stream */
foo_parser *foo_create_parser(void *stream, fn_read read);
/* destroy parser */
void foo_destroy_parser(foo_parser *);
/* read a foo object from a foo file */
foo *foo_parse_foo(foo_parser *);
/* other methods... */
#endif