【发布时间】:2019-06-27 13:27:54
【问题描述】:
我有一门课,我正在从记忆中阅读。
那有一堆链表。
我试图通过某种方式使用模板自动生成函数来使我的代码更小。
我希望能够使用 getFunction 名称从其类成员函数名称中调用它
namespace
{
class base
{
public:
class SList<class Random1Obj> Random1ObjList;
class SList<class Random2Obj> Random2ObjList;
class SList<class Random3Obj> Random3ObjList;
class SList<class Random4Obj> Random4ObjList;
};
std::vector<class Random1Obj*> getRandom1ObjList()
{
std::vector<class Random1Obj*> vRet;
base This = *(base*)((DWORD)GetModuleHandleA("random.dll"));
for (SLNode<Random1Obj>* node = This.Random1ObjList.Head(); node; node = node->Next())
{
vRet.push_back(node->Data());
}
return vRet;
}
std::vector<class Random2Obj*> getRandom2ObjList()
{
std::vector<class Random2Obj*> vRet;
base This = *(base*)((DWORD)GetModuleHandleA("random.dll"));
for (SLNode<Random2Obj>* node = This.Random2ObjList.Head(); node; node = node->Next())
{
vRet.push_back(node->Data());
}
return vRet;
}
.........
}
【问题讨论】:
-
你真的使用过这些功能吗?至少可以说,从模块句柄转换为
base*,以及在 DLL 中存储指针看起来很可疑。 -
你想减少什么代码?您编写的代码或编译器发出的目标代码?