【发布时间】:2025-12-16 17:15:02
【问题描述】:
我有一个位于共享对象中的函数,它从主程序中使用dlsym 加载和执行。
(共享对象和主程序都是C++)
这个函数会不会返回std::unique_ptr?
共享对象函数 -
extern "C" {
unique_ptr<Obj> some_function() {
return make_unique<Obj>();
}
}
主程序:
void main_flow() {
auto handle = dlopen(...);
FuncPtr func = dlsym(handle, "some_function");
unique_ptr<Obj> func();
}
【问题讨论】:
-
extern C 只是禁用 C++ 名称修改。在具有 C 命名约定的 func 中使用唯一指针没有问题。
标签: c++ unique-ptr dlsym extern-c