AdCKuY_DpO4uLa
Известный
- 287
- 477
Пачка туторов по написанию dllПривет! Хочу сделать бота для сервера, а именно для водолазов, как ему задать маршрут? Напишите или скиньте какой-то туториал по этому? Если что хочу сделать в формате dll
Пачка туторов по написанию dllПривет! Хочу сделать бота для сервера, а именно для водолазов, как ему задать маршрут? Напишите или скиньте какой-то туториал по этому? Если что хочу сделать в формате dll
Я не совсем понимаю что ты тогда мог искать, если не смог найти как подключить статическую/динамическую библиотеку к своему проекту.Долго искал и до сих пор ищу ответ на интересующий меня вопрос.
Суть вопроса: как мне подключить SAMP-api к проекту?
Вот у меня есть SAMP-api. Что мне делать дальше? Как его подключить к моему проекту? Посмотреть вложение 106715
Мне нужно только 0.3.7-R1
Благодарю. Мне все объяснили и я сразу понял в чём была моя ошибка.Я не совсем понимаю что ты тогда мог искать, если не смог найти как подключить статическую/динамическую библиотеку к своему проекту.
Я не знаю, что это за проект и что он генерит, но тебе в любом случае нужно подключить хидеры (.h files) в свой проект, а после этого скомпилить проект и подключить библиотеку к проекту, в зависимости от того че там и от того че ты хочешь. Если статика - то делать особо нечего, в msdn даже есть: тык
А если динамическая, то тебе решать как ты хочешь юзать её функции и как ее подключать. Но они все равно объявлены в header files, поэтому их тебе нужно все равно подключать. А далее смотришь тут
По твоим хотелкам дальше - либо явное связывание, либо неявное, либо если тебе надо чтобы все шло по маслу до того как ты вызовешь функцию из библиотеки, то используй отложенную загрузку (только не с kernel32.dll, но тебе её и не нужно отложенно загружать), но при этом не используй FreeLibrary.
Тебе я так полагаю больше неявное связывание подойдет, ибо меньше мороки.
По сути всё. И это применимо не только к твоему проекту, но и ко всем сторонним библиотекам.
std::string GetKeyBoardLocaleName()
{
char OutBuff[16];
GetKeyboardLayoutNameA(OutBuff);
char buffer[255];
GetLocaleInfoA(strtol(OutBuff, (char**)OutBuff[strlen(OutBuff)], 16), LOCALE_SLANGUAGE,
buffer, sizeof(buffer) / sizeof(char));
return buffer;
}
char szBuffer[128];
sprintf(szBuffer, (const char*)u8"Раскладка: %s",GetKeyBoardLocaleName().c_str());
ImGui::TextColored(ImVec4(m_v4Color.x, m_v4Color.y, m_v4Color.z, 1.f), szBuffer);
у тебя слово "Раскладка" в UTF-8, а GetLocaleInfoA отдает cp1251Привет всем
мне нужна хелпа с имги
у меня есть функция получения названия раскладки:
Я также загуражю шрифт с поддержкой Кирилицы, русский текст у меня рисуеться, но вот вместо названия раскладки знаки вопросаC++:std::string GetKeyBoardLocaleName() { char OutBuff[16]; GetKeyboardLayoutNameA(OutBuff); char buffer[255]; GetLocaleInfoA(strtol(OutBuff, (char**)OutBuff[strlen(OutBuff)], 16), LOCALE_SLANGUAGE, buffer, sizeof(buffer) / sizeof(char)); return buffer; }
C++:char szBuffer[128]; sprintf(szBuffer, (const char*)u8"Раскладка: %s",GetKeyBoardLocaleName().c_str()); ImGui::TextColored(ImVec4(m_v4Color.x, m_v4Color.y, m_v4Color.z, 1.f), szBuffer);
Всем привет. Каким образом можно прочитать адрес памяти в C#/C++?
Если быть конкретнее то мне нужно получить значение адреса памяти, для дальнейшего использования в качестве переменной.
template <typename T>
T ReadMemory(uintptr_t address) {
DWORD old;
VirtualProtect(reinterpret_cast<void*>(address), sizeof(T), PAGE_READWRITE, &old);
T value = *reinterpret_cast<T*>(address);
VirtualProtect(reinterpret_cast<void*>(address), sizeof(T), old, &old);
return value;
}
с++ :Всем привет. Каким образом можно прочитать адрес памяти в C#/C++?
Если быть конкретнее то мне нужно получить значение адреса памяти, для дальнейшего использования в качестве переменной.
auto value = *(тип переменной*)адрес;
Думаю поймешь:Привет всем, кто знает как открыть меню (которое на ESC) чё может куда-то записать или чо вызвать?
mov eax, [ecx+14E0]
mov eax, [esi + 14E0]
mov [esi + 14E0], 1
samp.DLL+26E8CC + 14E0
int addr = *(int*)(var.sAPI.dwSampModule + 0x26E8CC);
*(bool*)(addr + 0x14E0) = 1;
#define FUNC_CChat_Close 0x0068E10
#define FUNC_CChat_Open 0x0068D10
void ToggleSAMPChat(bool status = true) {
uintptr_t pSamp = reinterpret_cast<uintptr_t>(GetModuleHandleA("samp.dll"));
uintptr_t pChat = *reinterpret_cast<uintptr_t*>(pSamp + 0x26E8CC);
status ? reinterpret_cast<int(__thiscall*)(uintptr_t ptr)>(pSamp + FUNC_CChat_Open)(pChat) :
reinterpret_cast<int(__thiscall*)(uintptr_t ptr)>(pSamp + FUNC_CChat_Close)(pChat);
}