【发布时间】:2020-04-14 18:44:25
【问题描述】:
我创建了一个这样的结构:
struct Options {
double bindableKeys = 567;
double graphicLocation = 150;
double textures = 300;
};
Options options;
在此声明之后,在另一个进程中,我打开包含该结构的进程并使用该结构的双精度搜索字节数组,但没有找到。
要获得结果,我需要在声明后添加 std::cout << options.bindableKeys; 之类的内容。然后我从我的模式搜索中得到一个结果。
为什么会这样?有什么解决办法吗?
最小的可重现示例:
struct Options {
double bindableKeys = 567;
double graphicLocation = 150;
double textures = 300;
};
Options options;
while(true) {
double val = options.bindableKeys;
if(val > 10)
std::cout << "test" << std::endl;
}
您可以使用 CheatEngine 或其他模式查找器搜索数组
【问题讨论】:
-
如果你不使用它,编译器可能会将其优化掉。
-
几行之后我一直使用它。
-
如果不使用,则不会链接。即使它被链接,它也需要足够大的使用,编译器无法看穿它并优化它。
-
@heromato 那么它可能是在第一次使用时创建的,而不是在您在代码中“创建”时创建的。
-
无法想象你想说什么。请详细说明