LINUX.ORG.RU

История изменений

Исправление SkyMaverick, (текущая версия) :

Если там что-то из серии

/* API либы, через который вся работа */
struct {
    uintptr_t (*func)(<чётатам + va_list какой-нибудь>);
    ...
} my_functions_t;

/* собственно внешний интерфейс */
my_functions_t* start_core(<чётатам>);
void stop_core(void);
плюс заказчику нужен *.pas файл чтобы он мог включить его в проект и собирать отдельно от core-либы.
В случае, если либа из серии «кишки наружу», тогда да, можно и просто параметры вызова согласовать. upd. И то с теми же va_list-ами или константными указателями (const <чёта-там>*) потенциально можно сильно накривить.

Исправление SkyMaverick, :

Если там что-то из серии

/* API либы, через который вся работа */
struct {
    uintptr_t (*func)(<чётатам + va_list какой-нибудь>);
    ...
} my_functions_t;

/* собственно внешний интерфейс */
my_functions_t* start_core(<чётатам>);
void stop_core(void);
плюс заказчику нужен *.pas файл чтобы он мог включить его в проект и собирать отдельно от core-либы.
В случае, если либа из серии «кишки наружу», тогда да, можно и просто параметры вызова согласовать. upd. И то с теми же va_list-ами или указателями на константы (const <чёта-там>*) потенциально можно сильно накривить.

Исходная версия SkyMaverick, :

Если там что-то из серии

/* API либы, через который вся работа */
struct {
    uintptr_t (*func)(<чётатам + va_list какой-нибудь>);
    ...
} my_functions_t;

/* собственно внешний интерфейс */
my_functions_t* start_core(<чётатам>);
void stop_core(void);

плюс заказчику нужен *.pas файл чтобы он мог включить его в проект и собирать отдельно от core-либы.

В случае, если либа из серии «кишки наружу», тогда да, можно и просто параметры вызова согласовать.