从DLL加载派生类时不包含派生属性
Loading derived class from DLL does not contain derived attributes
我正在使用DLL,而且我是它的新手。我正在尝试加载从接口继承的派生类
class IModule{
public:
virtual ~IModule(); // <= important!
vector<String> getFunctions();
protected:
vector<String> mFunctions;
};
class DllModule : public IModule {
public:
DllModule() {
this->mFunctions.push_back("Algorythm");
};
private:
int test;
};
在这里我要发送指针到我的应用程序
extern "C" {
IModule* CreateModule() {
// call the constructor of the actual implementation
IModule * module = new DllModule;
// return the created function
return module;
}
}
在我的应用程序加载后
f_GetFunctions funci = (f_GetFunctions)GetProcAddress(hGetProcIDDLL, "CreateModule");
if (!funci) {
std::cout << "Could not locate function CreateModule" << std::endl;
//return EXIT_FAILURE;
return nullptr;
}
IModule* module = funci();
我希望mFunction被填充,但它类似于IModule的新实例,而不是从DLL加载的DllModule。我只想在mFunctions中循环并在QT_App中填充我的组合框。
有人能帮我吗?我的期望有什么问题?
非常感谢。
(一切都在Windows10中完成)
第1版:已将类型更改为最小类型(很抱歉)函数=>字符串
第2版:我完全忘记了分配指针
我能够解决我的问题。我使用QLibrary.Load()而不是LoadLibraryA,它正是我想要的。
相关文章:
- 如果基类包含双指针成员,则派生类的构造函数
- 链表包含 c++ 中不同的派生类对象
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 派生自嵌套在类模板中的类模板,所有这些都包含在类模板中
- 如何从包含基类指针的容器中调用派生类函数(基于其类型)?
- 在C++中,为什么仅包含与其基类实例的联合的派生类占用的内存多于联合的大小?
- 如果我在不同的类中包含基类,是否也会包含该基类的派生类
- 如果派生类仅包含自动变量成员,是否有必要具有虚拟驱动器
- 在派生类的成员联合中包含继承的基类成员
- 无法返回包含派生指针的向量
- 类是否可以包含基类作为成员,该基类稍后专用于派生类
- 如果派生类包含其他方法和成员,则可以static_cast从基类到派生类
- 将共享的_ptr降低到包含feal_ptr C 11的派生类
- 派生自包含成员的类,其模板参数是基类
- 包含派生类型的指针的基类
- #包含从宏__file__派生的文件
- 如何制作一个既可以包含基类又可以包含派生类的列表
- 我需要制作一个包含基类和派生类的对象的向量,并知道哪个元素是哪个元素
- 派生类对象是否包含基类的私有成员?它在记忆中是什么样子的
- C++:向量可以<Base>包含派生类型的对象吗?