【发布时间】:2012-11-24 12:59:15
【问题描述】:
我正在尝试访问动态库中的函数,该函数实例化了 Person 的一个实例,并将指向它的指针作为 void 指针返回。然后程序必须使用 reinterpret_cast 将 void 指针转换为 Person。但是,我收到一个错误:error: ‘void*’ is not a pointer-to-object type.
代码如下:
库中的函数:
void* loadPerson (void) {
return reinterpret_cast<void*>(new Person);
}
main.cpp:
void* loadPerson = dlsym(lib_handle, "loadPerson");
void* person_vp = (*loadPerson)();
Person* person = reinterpret_cast<Person*>(person_vp);
if (dlerror() != NULL)
cout<<"Library init error."<<endl;
else {
//...
谢谢!
【问题讨论】:
标签: c++ object pointers dynamic shared-libraries