gpt4 book ai didi

c - 避免暴露已编译 C 模块的详细信息

转载 作者:行者123 更新时间:2023-11-30 16:31:53 25 4
gpt4 key购买 nike

我创建了模块a.ha.c。如何从中创建一个已编译的封装模块(无需为每个项目添加 a.c,无需公开 a.h 实现)?

我使用 Visual Studio 2010。

谢谢

最佳答案

正如 @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);

关于c - 避免暴露已编译 C 模块的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50390185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com