У меня есть набор связанных классов C++, которые необходимо обернуть и экспортировать из DLL таким образом, чтобы их можно было легко использовать библиотеками C/FFI. Я ищу некоторые «лучшие практики» для этого. Например, как создавать и освобождать объекты, как обрабатывать базовые классы, альтернативные решения и т. Д.Обтекание API класса C++ для потребления C
Некоторые основные рекомендации, которые я имею до сих пор, - это преобразовать методы в простые функции с дополнительным аргументом void * этот 'указатель, включая любые деструкторы. Конструкторы могут сохранять свой исходный список аргументов, но должны возвращать указатель, представляющий объект. Вся память должна обрабатываться с помощью одного и того же набора распределений по всему процессу и бесплатных подпрограмм и должна быть с возможностью «горячей» замены в некотором смысле либо с помощью макросов, либо иным образом.
Связанные (или даже дубликат): [Разработка C обертку API для объектно-ориентированного кода C++] (https://stackoverflow.com/questions/2045774/developing-c -wrapper-api-for-object-oriented-c-code) – user