gpt4 book ai didi

c++ - 无法在需要对象展开修复的函数中使用 __try

转载 作者:行者123 更新时间:2023-12-02 01:38:50 24 4
gpt4 key购买 nike

我在这里为游戏机器人提供了这个循环,它需要 __try __ except 以防止注入(inject)代码时发生即时崩溃。但是,我收到错误:无法在需要对象展开修复的函数中使用 __try

我已经查看了该函数内部的所有函数调用,没有一个包含嵌套的 __try __ except 并且我也在使用/EHs 进行构建。

这是我的代码;

void bot::logic::loop()
{
while (true)
{
__try
{
if (bot::logic::should_close())
exit(33062);

om::refresh_minions();

if (local_player::is_threatened())
local_player::handle_threat();

if (local_player::is_in_turret())
{
utils::move_to_suitable_pos();
std::this_thread::sleep_for(12s);
}

object* localplayer = obj_local_player;
bot::logic::calculate_buys(localplayer->current_gold);

obj_manager* manager = (obj_manager*)(m_base + o_obj_manager);
for (int32_t i = 0; i < manager->highest_index; i++)
{
object* this_object = manager->ptrs[i];

if (this_object)
{
if (is_minion(this_object) == 3073)
if (local_player::object_is_enemy(this_object))
if (utils::is_object_mid(this_object))
if (is_alive(this_object) == TRUE)
utils::Log("all passed");

if (local_player::object_is_enemy(this_object) && utils::is_object_mid(this_object) && is_alive(this_object) == TRUE && is_minion(this_object) == 3073)
{
object* enemy_minion = this_object;

for (int i = 0; i < game::minion_maxed_index; i++)
{
bot::logic::moving_to_cs_loop(om_ally_minions[i].minion_object, enemy_minion);
bot::logic::csing_loop();
}
}
}
}
std::this_thread::sleep_for(100ms);
}
__except (EXCEPTION_EXECUTE_HANDLER) {};
}
}

谁能告诉我哪些对象“需要展开”以及如何防止此错误?

编辑:我发现代码中发生了错误;

if (is_minion(this_object) == 3073)
if (local_player::object_is_enemy(this_object))
if (utils::is_object_mid(this_object))
if (is_alive(this_object) == TRUE)
utils::Log("all passed");

最佳答案

无论如何,我建议您将 __try/__except 中的代码移动到自己的函数中,然后调用它,这样堆栈展开就会发生在另一个函数中。

例如

void loop()
{
__try { loopimpl(); }
__except(EXCEPTION_EXECUTE_HANDLER) {};
}

void loopimpl()
{
while (true) { ... }
}

关于c++ - 无法在需要对象展开修复的函数中使用 __try,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com