Zawijanie API klasy C ++ dla konsumpcji C

Mam zestaw pokrewnych klas C ++, które muszą być opakowane i wyeksportowane z biblioteki DLL w taki sposób, aby mogły być łatwo wykorzystane przez biblioteki C / FFI. Szukam „najlepszych praktyk” do tego. Na przykład, jak tworzyć i uwalniać obiekty, jak obsługiwać klasy bazowe, alternatywne rozwiązania itp. ...

Niektóre podstawowe wytyczne, jakie do tej pory posiadałem, to konwertowanie metod na proste funkcje z dodatkowym argumentem void * reprezentującym wskaźnik „this”, w tym wszelkie destruktory. Konstruktory mogą zachować swoją oryginalną listę argumentów, ale muszą zwrócić wskaźnik reprezentujący obiekt. Cała pamięć powinna być obsługiwana za pomocą tego samego zestawu alokacji dla całego procesu i bezpłatnych procedur i powinna być w pewnym sensie wymieniana podczas pracy, albo za pomocą makr, albo w inny sposób.

questionAnswers(6)

yourAnswerToTheQuestion