Гайд Error : 'naked' attribute only applies to non-member functions

Начинающий
Статус
Оффлайн
Регистрация
18 Авг 2020
Сообщения
43
Реакции[?]
8
Поинты[?]
0
Гайд сделан специально для CSGO Solution AKA zeeron.sosu если вы переустановили визуалку как и я (спасибо clang-tidy за лучший компилятор)

Hooks.hpp:
    static /*__declspec(naked)*/ void __stdcall hkCreateMove_Proxy( int32_t iSequence, float_t flFrameTime, bool bIsActive );
Client.cpp:
__declspec(naked) void __stdcall func(int32_t iSequence, float_t flFrameTime, bool bIsActive)//clang-tidy the best error generator
{
    __asm
    {
        push ebx
        push esp
        push dword ptr[esp + 20]
        push dword ptr[esp + 0Ch + 8]
        push dword ptr[esp + 10h + 4]
        call C_Hooks::hkCreateMove
        pop ebx
        retn 0Ch
    }
}
void __stdcall C_Hooks::hkCreateMove_Proxy(int32_t iSequence, float_t flFrameTime, bool bIsActive)
{
    func(iSequence, flFrameTime, bIsActive);
}
 
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Янв 2019
Сообщения
838
Реакции[?]
298
Поинты[?]
17K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Гайд сделан специально для CSGO Solution AKA zeeron.sosu если вы переустановили визуалку как и я (спасибо clang-tidy за лучший компилятор)

Hooks.hpp:
    static /*__declspec(naked)*/ void __stdcall hkCreateMove_Proxy( int32_t iSequence, float_t flFrameTime, bool bIsActive );
Client.cpp:
__declspec(naked) void __stdcall func(int32_t iSequence, float_t flFrameTime, bool bIsActive)//clang-tidy the best error generator
{
    __asm
    {
        push ebx
        push esp
        push dword ptr[esp + 20]
        push dword ptr[esp + 0Ch + 8]
        push dword ptr[esp + 10h + 4]
        call C_Hooks::hkCreateMove
        pop ebx
        retn 0Ch
    }
}
void __stdcall C_Hooks::hkCreateMove_Proxy(int32_t iSequence, float_t flFrameTime, bool bIsActive)
{
    func(iSequence, flFrameTime, bIsActive);
}
Ну так это у тебя с визуалкой траблы.
 
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Янв 2019
Сообщения
838
Реакции[?]
298
Поинты[?]
17K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Янв 2019
Сообщения
838
Реакции[?]
298
Поинты[?]
17K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
17 Июл 2022
Сообщения
51
Реакции[?]
4
Поинты[?]
1K

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


The guide was made specifically for CSGO Solution AKA zeeron.sosu if you reinstalled the visual like me (thanks to clang-tidy for the best compiler)

Hooks.hpp:
 static /*__declspec(naked)*/ void __stdcall hkCreateMove_Proxy( int32_t iSequence, float_t flFrameTime, bool bIsActive );
Client.cpp:
__declspec(naked) void __stdcall func(int32_t iSequence, float_t flFrameTime, bool bIsActive)//clang-tidy the best error generator
{
    __asm
    {
        push ebx
        push esp
        push dword ptr[esp + 20]
        push dword ptr[esp + 0Ch + 8]
        push dword ptr[esp + 10h + 4]
        call C_Hooks::hkCreateMove
        pop ebx
        retn 0Ch
    }
}
void __stdcall C_Hooks::hkCreateMove_Proxy(int32_t iSequence, float_t flFrameTime, bool bIsActive)
{
    func(iSequence, flFrameTime, bIsActive);
}
? all of it is wrong.
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А в чём вообще прикол юзать этот clang, он типо быстрее? Старый добрый msvc не чем не хуже
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
А в чём вообще прикол юзать этот clang, он типо быстрее? Старый добрый msvc не чем не хуже
we (yougame users) обожаем самые логичные реализации UB!!!!
MSVC - наше всё!
Я ЛИЧНО вложил в MSFT все сбережения семьи!
WE DA BEST:
template <typename A, typename B>
struct BitCast
{
    static_assert(std::is_pod<A>(), "BitCast<A, B> : A must be plain old data type.");
    static_assert(std::is_pod<B>(), "BitCast<A, B> : B must be plain old data type.");
    static_assert(sizeof(A) == sizeof(B), "BitCast<A, B> : A and B must be the same size.");
    static_assert(alignof(A) == alignof(B), "BitCast<A, B> : A and B must have the same alignment.");
    //
    union
    {
        A a;
        B b;
    };
    //
    constexpr BitCast(A const & value) noexcept : a{ value } {}
    constexpr BitCast(B const & value) noexcept : b{ value } {}
    //
    operator B const & () const noexcept { return b; }
};

float XOR(float a, float b) noexcept
{
    return BitCast<uint32_t, float>{ BitCast<float, uint32_t>{a} ^ BitCast<float, uint32_t>{b} };
}
msvc:
float XOR(float,float) PROC                                  ; XOR, COMDAT
        push    ecx
        movss   xmm0, DWORD PTR _a$[esp]
        movss   DWORD PTR $T1[esp+4], xmm0
        movss   xmm0, DWORD PTR _b$[esp]
        movss   DWORD PTR $T2[esp], xmm0
        mov     eax, DWORD PTR $T2[esp]
        xor     eax, DWORD PTR $T1[esp+4]
        mov     DWORD PTR $T3[esp], eax
        fld     DWORD PTR $T3[esp]
        pop     ecx
        ret     0
clang:
XOR(float, float):                               # @XOR(float, float)
        xorps   xmm0, xmm1
        ret
 
mov ebp, esp
Пользователь
Статус
Оффлайн
Регистрация
16 Дек 2019
Сообщения
88
Реакции[?]
34
Поинты[?]
1K
Гайд сделан специально для CSGO Solution AKA zeeron.sosu если вы переустановили визуалку как и я (спасибо clang-tidy за лучший компилятор)

Hooks.hpp:
    static /*__declspec(naked)*/ void __stdcall hkCreateMove_Proxy( int32_t iSequence, float_t flFrameTime, bool bIsActive );
Client.cpp:
__declspec(naked) void __stdcall func(int32_t iSequence, float_t flFrameTime, bool bIsActive)//clang-tidy the best error generator
{
    __asm
    {
        push ebx
        push esp
        push dword ptr[esp + 20]
        push dword ptr[esp + 0Ch + 8]
        push dword ptr[esp + 10h + 4]
        call C_Hooks::hkCreateMove
        pop ebx
        retn 0Ch
    }
}
void __stdcall C_Hooks::hkCreateMove_Proxy(int32_t iSequence, float_t flFrameTime, bool bIsActive)
{
    func(iSequence, flFrameTime, bIsActive);
}
puking and shitting at the same time.
why?
have you looked at what the naked attribute actually does? do you know what a stack is?
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
we (yougame users) обожаем самые логичные реализации UB!!!!
MSVC - наше всё!
Я ЛИЧНО вложил в MSFT все сбережения семьи!
WE DA BEST:
template <typename A, typename B>
struct BitCast
{
    static_assert(std::is_pod<A>(), "BitCast<A, B> : A must be plain old data type.");
    static_assert(std::is_pod<B>(), "BitCast<A, B> : B must be plain old data type.");
    static_assert(sizeof(A) == sizeof(B), "BitCast<A, B> : A and B must be the same size.");
    static_assert(alignof(A) == alignof(B), "BitCast<A, B> : A and B must have the same alignment.");
    //
    union
    {
        A a;
        B b;
    };
    //
    constexpr BitCast(A const & value) noexcept : a{ value } {}
    constexpr BitCast(B const & value) noexcept : b{ value } {}
    //
    operator B const & () const noexcept { return b; }
};

float XOR(float a, float b) noexcept
{
    return BitCast<uint32_t, float>{ BitCast<float, uint32_t>{a} ^ BitCast<float, uint32_t>{b} };
}
msvc:
float XOR(float,float) PROC                                  ; XOR, COMDAT
        push    ecx
        movss   xmm0, DWORD PTR _a$[esp]
        movss   DWORD PTR $T1[esp+4], xmm0
        movss   xmm0, DWORD PTR _b$[esp]
        movss   DWORD PTR $T2[esp], xmm0
        mov     eax, DWORD PTR $T2[esp]
        xor     eax, DWORD PTR $T1[esp+4]
        mov     DWORD PTR $T3[esp], eax
        fld     DWORD PTR $T3[esp]
        pop     ecx
        ret     0
clang:
XOR(float, float):                               # @XOR(float, float)
        xorps   xmm0, xmm1
        ret
Это всё никому не нужно, все эти крэнги кленги хуенги, std:super_puper_c++ , весь этот модерн в итоге даёт прибавку максимум 2-3 фпс в игре, лучше писать обычный код который можно запустить на любой платформе и не ебать мозг не себе не людям.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
18 Авг 2020
Сообщения
43
Реакции[?]
8
Поинты[?]
0
puking and shitting at the same time.
why?
have you looked at what the naked attribute actually does? do you know what a stack is?
Я знаю что такое стек. Если тебе что-то не нравится в моей реализации, то можешь, пожалуйста, не писать. Лучше бы не умничал и написал свою реализацию.
 
mov ebp, esp
Пользователь
Статус
Оффлайн
Регистрация
16 Дек 2019
Сообщения
88
Реакции[?]
34
Поинты[?]
1K
/del
 
Последнее редактирование:
Сверху Снизу