例子
我有 2 两个文件一起编译:
MyClass.h/cpp其中包含数据和函数成员;
Main.cpp包含
int main()
并将加载从以下源编译的动态库;
==== 编译为dynamiclib.so=========
- 具有外部“C” functionOfDynamic(MyClass*)的dynamic.c
设想
在文件中main.cpp
,我将加载 ( dopen(dynamic.so,....)
) 一个动态库(从 编译而来dynamic.c
),其中一个函数将被调用并传递一个MyClass
指针。
我的问题:动态库中的函数可以调用成员函数MyClass
吗?
动态的.c
#include "MyClass.h"
int SomeMethodWrapper(void *A){
return static_cast<MyClass*>(A)->SomeMethod(); // got core dump
}
extern "C" int functionOfDynamic(void* A) {
SomeMethodWrapper(A);
}
我得到了核心转储
注意:MyClass 对象是在加载“dynamiclib.so”之前创建的
========更新==============
各位
上面的代码应该没问题,我得到了核心转储,因为我写错了,对不起