traceattack
Известный
- 218
- 119
хукай wndprocЯ же не прошу помочь мне с логикой программы. Конкретно тут я хочу вывести сообщение, если нажат таб и открыто окно ввода(чат)
хукай wndprocЯ же не прошу помочь мне с логикой программы. Конкретно тут я хочу вывести сообщение, если нажат таб и открыто окно ввода(чат)
asi это тоже самое что и dll , только с другим расширением для загрузки в игру asi loader'омМожно пожалуйста простенький гайд по структуре самой дллки, и как её перегнать в .asi?
Да, спасибо за совет(без рофла). Только из этого следует вопрос по wndproc:хукай wndproc
void CALLBACK prtbtn(std::string c) {
char* btn = _strdup(c.c_str());
SF->getSAMP()->getChat()->AddChatMessage(-1, btn);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_KEYDOWN) {
if(wParam == 'Y') prtbtn("Pressed");
return 0L;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp__DefWindowProcA@16 в функции "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)
Какой адрес у функции, которую вызывает опкод 00с2 в клео?
Тебе надо записать оба слова в одну переменную? Почему возникли проблемы с cin? код покажи, и отметь строки на которых возникают проблемы, а еще лучше пропиши проблемы комментариями к кодуесть две переменные типа string, под названием name, surname
вывод фразы: "Введите ваше имя и фамилию", если бы нужно было бы вести одно слово - можно было бы использовать просто cin, но так как вводится два слова, которых разделяет пробел - cin записывает второе слово (фамилию) сразу же второй переменной surname.
так как эти две переменные не являются символьным массивом (char), то cin.get или cin.getline становится проблематично использовать,, так как первый параметр - имя массива, а у меня просто переменная.
хотелось бы узнать, как в данном случае поступить.
спасибо за ответ.
И зачем тебе asm и вообще вызов каких-либо функций?mod-s0beit-sa/src/game_sa/CEntitySA.cpp at b89a1ec3ce683062e89b91ea59af0b9a02e02e3f · BIG686/mod-s0beit-sa
Automatically exported from code.google.com/p/mod-s0beit-sa - BIG686/mod-s0beit-sagithub.com
Надо использовать CallWindowProc, а не DefWindowProcДа, спасибо за совет(без рофла). Только из этого следует вопрос по wndproc:
При компиляции этого кода
По плану он должен исполняться:void CALLBACK prtbtn(std::string c) { char* btn = _strdup(c.c_str()); SF->getSAMP()->getChat()->AddChatMessage(-1, btn); } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_KEYDOWN) { if(wParam == 'Y') prtbtn("Pressed"); return 0L; } return DefWindowProc(hWnd, message, wParam, lParam); }
Выходит ошибка:Ошибка LNK2019 ссылка на неразрешенный внешний символ __imp__DefWindowProcA@16 в функции "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)
Можно пожалуйста простенький гайд по структуре самой дллки, и как её перегнать в .asi?
заранее извиняюсь за хуйню которую написал выше, сам сейчас прочитал и понял что это выглядит так, как будто это писал умственно-отсталыйТебе надо записать оба слова в одну переменную? Почему возникли проблемы с cin? код покажи, и отметь строки на которых возникают проблемы, а еще лучше пропиши проблемы комментариями к коду
char name[30], dessert[35];
cout << "Enter ur name and surname:" << endl;
cin >> name;
cout << "Enter ur favorite dessert: " << endl;
cin >> dessert;
cout << "Ur name: " << name << ", ur favorite dessert: " << dessert;
char name[30], dessert[35];
cout << "Enter ur name and surname:" << endl;
cin.get(name,29).get();
cout << "Enter ur favorite dessert: " << endl;
cin.get(dessert,34).get();
cout << "Ur name: " << name << ", ur favorite dessert: " << dessert;
заранее извиняюсь за хуйню которую написал выше, сам сейчас прочитал и понял что это выглядит так, как будто это писал умственно-отсталый
да, нужно записать два слова в одну переменную стринг.
зайду с далека, с символьных массивов.
- если написать код таким образом, то при вводе имени и фамилии (два слова, которых разделяет пробел) второе слово записывается сразу же в dessert, а фиксится это следующим образом:Код:char name[30], dessert[35]; cout << "Enter ur name and surname:" << endl; cin >> name; cout << "Enter ur favorite dessert: " << endl; cin >> dessert; cout << "Ur name: " << name << ", ur favorite dessert: " << dessert;
либо же используя getline, разница не велика, суть одна и та же.Код:char name[30], dessert[35]; cout << "Enter ur name and surname:" << endl; cin.get(name,29).get(); cout << "Enter ur favorite dessert: " << endl; cin.get(dessert,34).get(); cout << "Ur name: " << name << ", ur favorite dessert: " << dessert;
вот я хочу проделать тоже самое с string(сделать возможным записать в нее два слова, между которыми стоит пробел), но get() и getline() просто не дает мне этого сделать, ибо первый параметр название символьного массива, вместо которого я использую обычный string.
getline(cin, string, '\n');
-- будет считывать строку до символа переноса, т.е. пока не нажмешь enterА чо сам домашку никак не можешь сделать? Вбей в гугл, давно решенная задачка.Дано натуральное число A > 0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A.
Объясните нормальным языком, что нужно сделать? Если сразу напишите программу, то сделайте пожалуйста комментарии
Да не, так скучно. Там объяснений нихера нетА чо сам домашку никак не можешь сделать? Вбей в гугл, давно решенная задачка.
есть, но раз гуглить не хочешь - платиДа не, так скучно. Там объяснений нихера нет