Person のインスタンスをインスタンス化し、それへのポインターを void ポインターとして返す動的ライブラリーから関数にアクセスしようとしています。次に、プログラムは reinterpret_cast を使用して、void ポインターを Person にキャストする必要があります。しかし、エラーが発生します:エラー: 'void*' はオブジェクトへのポインター型ではありません。
コードは次のとおりです。
ライブラリからの関数:
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 {
//...
ありがとう!