Другое С/С++ Вопрос - Ответ

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
Вызываем вот такое:
C++:
void SendChat(std::string msg)
{
    typedef int(__stdcall* SendMsg)(const char*);
    static SendMsg sendMsg = (SendMsg)(dwSAMP + 0x68E65);
    sendMsg(msg.c_str());
}
Получаем вот такое:
1605553766654.png

И чё делать? 😁
@KiN4StAt @checkdasound @Cake_ @redcode помогите плиз
 
Последнее редактирование:

Gunborg Johansson

Потрачен
32
21
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вызываем вот такое:
C++:
void SendChat(std::string msg)
{
    typedef int(__stdcall* SendMsg)(const char*);
    static SendMsg sendMsg = (SendMsg)(dwSAMP + 0x68E65);
    sendMsg(msg.c_str());
}
Получаем вот такое:
Посмотреть вложение 76066
И чё делать? 😁
@KiN4StAt @checkdasound @Cake_ @redcode помогите плиз
C++:
// samp.dll (r1):
.text:10068E60 fsub ds:flt_100D390C
What are you going to call?
 

CleanLegend

Известный
Всефорумный модератор
477
935
Вызываем вот такое:
C++:
void SendChat(std::string msg)
{
    typedef int(__stdcall* SendMsg)(const char*);
    static SendMsg sendMsg = (SendMsg)(dwSAMP + 0x68E65);
    sendMsg(msg.c_str());
}
Получаем вот такое:
Посмотреть вложение 76066
И чё делать? 😁
@KiN4StAt @checkdasound @Cake_ @redcode помогите плиз
Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текст
 

Gunborg Johansson

Потрачен
32
21
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текст
Then it is a __thiscall and not __stdcall. It needs to pass a pointer to CChat.
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,650
2,535
R3 насколько я помню
изучай
 

Vintik

Через тернии к звёздам
Проверенный
1,526
1,011
Она вроде из класса, поэтому нужно еще передавать указатель, а у тебя идет чисто аргумент в виде указателя на текст
C++:
void SendChat(const std::string& text)
    {
        typedef int(__stdcall* SendCommand)(const char*);
        typedef int(__stdcall* SendText)(const char*);
        static SendCommand sendCommand = (SendCommand)((DWORD)GetModuleHandle("samp.dll") + 0x65C60);
        static SendText sendText = (SendText)((DWORD)GetModuleHandle("samp.dll") + 0x57F0);

        /*
        какой-нибудь способ конвертировать std::string -> const char*, чтобы оно не крашило через n повторений
        */

        if (text[0] == '/')
            sendCommand(cstr);
        else
           sendText(cstr);
    }
Почему то тут не передаёт человек только указатель на строку и у него работает (если что, из этой темы)