Избегайте разоблачения деталей скомпилированного модуля C - PullRequest
0 голосов
/ 17 мая 2018

Я создал модуль a.h и a.c. Как я могу создать скомпилированный инкапсулированный модуль из него (без добавления a.c для каждого проекта, без раскрытия a.h реализации)?

Я работаю с Visual Studio 2010.

Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Как указывает @unwind, вам нужно будет, по крайней мере, указать те типы и функции, которые вы хотите использовать для пользователя.

Обратите внимание, однако, что если пользователю не нужноЕсли вы знаете внутренности данного типа, вы просто предоставляете пользователю непрозрачные типы / указатели / дескрипторы.

Другими словами:

typedef struct Opaque Opaque;

Opaque * create(void);
void run(Opaque * handle);
void destroy(Opaque * handle);

Или даже просто:

void * create(void);
void apply(void * handle);
void destroy(void * handle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...