C++怎么运行时动态加载一个类,可不可以不用虚函数。
初步的想法是这样的
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
int alg::add(int a, int b) {
return a + b;
}
int alg::multiply(int a, int b) {
return a * b;
}
double alg::divide(int a, int b) {
return a / b;
}
int alg::minus(int a, int b) {
return a - b;
}
IMPORT_DLL LPVOID PASCAL CreatObj() {
return (LPVOID) new alg;
};
通过执行CreatObj来获得指针,再执行,可是报错"C++ 表达式必须包含指向类的指针类型,但它具有类型LPVOID"
动态加载一个类是什么意思?new 一个类就是动态加载。
我错了,是在动态加载dll里导出的类