65,186
社区成员




//1.dll文件
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
return TRUE;
}
class cla
{
public:
virtual void a();
virtual void b();
};
extern "C"
{
void __declspec(dllexport) Show(cla* AStruct)
{
AStruct->a();
AStruct->b();
};
}
////////////////1.exe文件
class cla
{
public:
virtual void a();
virtual void b();
};
void cla::a(){cout<<"本机cla::a"<<endl;}
void cla::b(){cout<<"本机cla::b"<<endl;}
void main()
{
HMODULE hmod=LoadLibrary("1.dll");
typedef void (*dll) (cla* AStruct);
dll fun=(dll)GetProcAddress(GetModuleHandle(NULL),"Show");
cla a;
fun(&a);
system("pause");
}
dll fun=(dll)GetProcAddress(hmod,"Show");
另,你这个就是单纯的导出类。
隐约记得应该有关键字可以直接实现。
貌似用不到虚函数。dll fun=(dll)GetProcAddress(hmod,"Show");
另,你这个就是单纯的导出类。
隐约记得应该有关键字可以直接实现。
貌似用不到虚函数。