用 C 写一个动态库,需要注意什么,不想暴露任何数据结构,只提供 api。应该怎么去做?
資深大佬 : ReputationZh 0
> 不想暴露任何数据结构,只提供 api 。
正常写就好了,为什么会暴露?没明白你遇到了什么问题。
大佬有話說 (16)
正常写就好了,为什么会暴露?没明白你遇到了什么问题。
mystruct_t mystruct_new(…);
void mystruct_destroy(mystruct_t);
….
这样头文件里不会暴露这个结构体的细节
定义 opaque type 的话,typedef struct MyApiType MyApiType 就行了。
// SomeThing.hpp:
class SomeThingPrivate;
class SomeThing {
private:
SomeThingPrivate *__actual_thing;
public:
SomeThing();
void some_function();
};
// SomeThing.cpp
class SomeThingPrivate {
public:
void some_function();
};
SomeThing::SomeThing() : __actual_thing(new SomeThingPrivate()) {
};
SomeThing::some_function() {
this->__actual_thing->some_function();
}