Лямбда-выражение не поддерживает встроенный ассемблерный код

Начинающий
Статус
Оффлайн
Регистрация
16 Ноя 2018
Сообщения
34
Реакции[?]
0
Поинты[?]
0
не могу скомпилировать, визуал ругается на строку с _asm

Код:
static auto util_clip_trace_to_players = [](const Vector& vec_abs_start, const Vector& vec_abs_end, unsigned int mask, ITraceFilter* filter, trace_t* tr)
    {
        static uintptr_t clptrtp = Utils::FindSignature(Utils::get_client_dll(), XorStr("53 8B DC 83 EC ? 83 E4 ? 83 C4 ? 55 8B 6B 04 89 6C 24 ? 8B EC 81 EC ? ? ? ? 8B 43 10 56 57 52 F3 0F 10 40"));

        if (!clptrtp)
            return false;

        __asm {
            push tr
            push filter
            push mask
            lea edx, vec_abs_end
            lea ecx, vec_abs_start
            call clptrtp
            add esp, 0xC
        }
    };
Код:
static auto UTIL_ClipTraceToPlayers = [](const Vector& vecAbsStart, const Vector& vecAbsEnd, unsigned int mask, ITraceFilter* filter, trace_t* tr)
    {
        static uintptr_t clptrtp = Utils::FindSignature(Utils::get_client_dll(), XorStr("53 8B DC 83 EC ? 83 E4 ? 83 C4 ? 55 8B 6B 04 89 6C 24 ? 8B EC 81 EC ? ? ? ? 8B 43 10 56 57 52 F3 0F 10 40"));
            
        if (!clptrtp)
            return false;
            
        __asm {
            push tr
            push filter
            push mask
            lea edx, vecAbsEnd
            lea ecx, vecAbsStart
            call clptrtp
            add esp, 0xC
        }
    };
 
Начинающий
Статус
Оффлайн
Регистрация
17 Мар 2018
Сообщения
21
Реакции[?]
5
Поинты[?]
0
Лямбда выражения не поддерживают asm код.
Напиши отдельную функцию, не как лямбду.
А ещё лучше хотя бы базово освоить C++
 
Олдфаг
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
2,936
Реакции[?]
1,002
Поинты[?]
0
Лямбда выражения не поддерживают asm код.
Напиши отдельную функцию, не как лямбду.
А ещё лучше хотя бы базово освоить C++
Умён не по годам )))
А мог бы просто сказать - закомментить эту хрень, либо дать ей возврат в 0.
Оно ничего не делает.
 
Эксперт
Статус
Оффлайн
Регистрация
8 Авг 2018
Сообщения
2,218
Реакции[?]
631
Поинты[?]
0
не могу скомпилировать, визуал ругается на строку с _asm

Код:
static auto util_clip_trace_to_players = [](const Vector& vec_abs_start, const Vector& vec_abs_end, unsigned int mask, ITraceFilter* filter, trace_t* tr)
    {
        static uintptr_t clptrtp = Utils::FindSignature(Utils::get_client_dll(), XorStr("53 8B DC 83 EC ? 83 E4 ? 83 C4 ? 55 8B 6B 04 89 6C 24 ? 8B EC 81 EC ? ? ? ? 8B 43 10 56 57 52 F3 0F 10 40"));

        if (!clptrtp)
            return false;

        __asm {
            push tr
            push filter
            push mask
            lea edx, vec_abs_end
            lea ecx, vec_abs_start
            call clptrtp
            add esp, 0xC
        }
    };
Код:
static auto UTIL_ClipTraceToPlayers = [](const Vector& vecAbsStart, const Vector& vecAbsEnd, unsigned int mask, ITraceFilter* filter, trace_t* tr)
    {
        static uintptr_t clptrtp = Utils::FindSignature(Utils::get_client_dll(), XorStr("53 8B DC 83 EC ? 83 E4 ? 83 C4 ? 55 8B 6B 04 89 6C 24 ? 8B EC 81 EC ? ? ? ? 8B 43 10 56 57 52 F3 0F 10 40"));
           
        if (!clptrtp)
            return false;
           
        __asm {
            push tr
            push filter
            push mask
            lea edx, vecAbsEnd
            lea ecx, vecAbsStart
            call clptrtp
            add esp, 0xC
        }
    };
Компиль на визуалке 2015 года
 
Сверху Снизу