|
|
8精币
封装dll其中一个返回值要拿出来读应该怎么搞?想了一天了。真快成光头了。其他都搞好了就这个一脸茫然试了很多方法都不行,要么读取错误要么就是编译不出来我试了直接在添加个读取的数组可惜没用。然后各种奇奇怪怪的方法都试了没调用。直接读取这个结果放在返回里也不行。 我就想封装个DLL唉,头疼。
代码如下
EXPORT int _stdcall Count(const uint64_t addr);
int _stdcall Count(uint64_t addr)
{
return Manager(addr).second;;
}
static std::pair<uint64_t, uint32_t> Manager(const uint64_t addr)
{
const auto decryption = [&addr](const uint32_t offset = 0) -> uint64_t
{
return ReadMem <uint64_t>(addr + offset + 0xC0) ^ 0x87BCCA326502E5FE; //这一块要拿出来用驱动读写。
};
return { decryption(), static_cast<uint32_t>(decryption(8) & 0xBC) };
}
|
最佳答案
查看完整内容
从这代码看没什么问题,只要lambda表达式里的ReadMem模板函数正确,还有这种用花括号初始化匿名pair对象需要完全支持C++11的编译器,我现在用的VS2010就不支持这种写法,最好VS2015以上的编译器
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|