Надо указать Windows SDK в свойствах проектаПоставил,комп релонул, но проблема осталась
Посмотреть вложение 34112
Надо указать Windows SDK в свойствах проектаПоставил,комп релонул, но проблема осталась
Посмотреть вложение 34112
код прикрепи где рисуешь
if (SUCCEEDED(SF->getRender()->BeginRender()))
{
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
static bool bAimbot;
ImGui::Begin("Test", NULL, ImVec2(300, -1), 1,
ImGuiWindowFlags_NoCollapse |
ImGuiWindowFlags_NoSavedSettings |
ImGuiWindowFlags_NoResize);
ImGui::Checkbox("Aimbot", &bAimbot);
ImGui::End;
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
SF->getRender()->EndRender();
}
C++:if (SUCCEEDED(SF->getRender()->BeginRender())) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); static bool bAimbot; ImGui::Begin("Test", NULL, ImVec2(300, -1), 1, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoResize); ImGui::Checkbox("Aimbot", &bAimbot); ImGui::End; ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); SF->getRender()->EndRender(); }
bool window = false;
if (SUCCEEDED(SF->getRender()->BeginRender())) {
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
if (window) {
ImGui::Begin(u8"", &activew, ImVec2(305, 160), 0.8f); {
}
ImGui::End();
}
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
SF->getRender()->EndRender();
}
У меня вот так всё норм работаетC++:bool window = false; if (SUCCEEDED(SF->getRender()->BeginRender())) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); if (window) { ImGui::Begin(u8"", &activew, ImVec2(305, 160), 0.8f); { } ImGui::End(); } ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); SF->getRender()->EndRender(); }
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message);
void mainThread(PVOID)
{
MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK);
DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll");
_PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520);
DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4);
print_char_msg(chat_info, (wchar_t*)L"Hello world!");
}
1. Второй аргумент функции имеет типПочему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно
C++:typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message); void mainThread(PVOID) { MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK); DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll"); _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520); DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4); print_char_msg(chat_info, (wchar_t*)L"Hello world!"); }
char *, а не wchar_t *.Пробовал с char - не помогает, Компилирую с набором символов Юникод, написал же выше, что адреса проверил, все правильно1. Второй аргумент функции имеет типchar *, а неwchar_t *.
2. В какой кодировке идет компиляция? Есть подозрение, что компилируешь с набором символов ANSI. В этом случае макрос GetModuleHandle заменяется на функцию GetModuleHandleA, принимает твою Юникод-строку, возвращает NULL и далее идет попытка вызова функции по адресу NULL + 0x64520 с ошибкой доступа.
Эта функция имеет переменное количество аргументовПочему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно
C++:typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message); void mainThread(PVOID) { MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK); DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll"); _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520); DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4); print_char_msg(chat_info, (wchar_t*)L"Hello world!"); }
typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, const char* message, ...);
Эта функция имеет переменное количество аргументов
Сделай такой прототип функции
C++:typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, const char* message, ...);
фигню говоришьstdcall
переменное количество аргументов
у тя прототип не правильный. а ещё ты берешь не указатель на структуру чата, а указатель на указатель на структуру чата. исправляйПочему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно
C++:typedef void(__stdcall* _PrintChatMsg)(DWORD chat_info, wchar_t* message); void mainThread(PVOID) { MessageBoxW(NULL, L"WAIT", L"WAIT", MB_OK); DWORD dwSamp = (DWORD)GetModuleHandle(L"samp.dll"); _PrintChatMsg print_char_msg = (_PrintChatMsg)(dwSamp + 0x64520); DWORD chat_info = (DWORD)(dwSamp + 0x21A0E4); print_char_msg(chat_info, (wchar_t*)L"Hello world!"); }
Точно! Теперь заработало, спасибо!фигню говоришь
у тя прототип не правильный. а ещё ты берешь не указатель на структуру чата, а указатель на указатель на структуру чата. исправляй
ВотА что это за элементы ? Дай код
#define RGBA_TO_FLOAT(r,g,b,a) (float)r/255.0f, (float)g/255.0f, (float)b/255.0f, (float)a/255.0f
void PlayerItem(const char* str_id, bool *online = nullptr, bool *spectate = nullptr)
{
ImVec2 p = ImGui::GetCursorScreenPos();
ImDrawList* draw_list = ImGui::GetWindowDrawList();
float height = ImGui::GetFrameHeight() + 0.001;
float width = ImGui::GetWindowContentRegionWidth() + 0.001 - height / 2;
p.x += height / 2;
ImGui::InvisibleButton(str_id, ImVec2(width, height));
ImGuiContext& g = *GImGui;
float t = ImGui::IsItemHovered() ? 1.0f : 0.0f;
float ANIM_SPEED = 0.00001f;
if (g.LastActiveId == g.CurrentWindow->GetID(str_id))
{
float t_anim = ImSaturate(g.LastActiveIdTimer / ANIM_SPEED);
t = ImGui::IsItemHovered() ? (t_anim) : (1.0f - t_anim);
}
ImU32 col_bg;
const ImVec2 text_size = CalcTextSize(str_id);
col_bg = ImGui::GetColorU32(ImLerp(ImVec4(RGBA_TO_FLOAT(19, 26, 19, 255)), ImVec4(RGBA_TO_FLOAT(15, 40, 15, 255)), t));
draw_list->AddRectFilled(p, ImVec2(p.x + width, p.y + height), col_bg, height * 0.2f);
RenderTextClipped(ImVec2(p.x + height / 2, p.y + (height - text_size.y)/2), ImVec2(p.x + width - height - height / 4, p.y + height / 2 + height / 4), str_id, (const char *)0, &text_size);
if (online != nullptr) {
draw_list->AddCircleFilled(ImVec2(p.x + width - height/2, p.y + height / 2), height / 4, ImGui::GetColorU32(*online ? ImVec4(RGBA_TO_FLOAT(2, 114, 6, 255)) : ImVec4(RGBA_TO_FLOAT(184, 19, 19, 255))));
}
if (spectate != nullptr && *spectate) {
draw_list->AddTriangleFilled(
ImVec2(p.x + width - height - height / 4, p.y + height / 2 + height / 4),
ImVec2(p.x + width - height, p.y + height / 2 - height / 4),
ImVec2(p.x + width - height + height / 4, p.y + height / 2 + height / 4),
ImGui::GetColorU32(ImVec4(RGBA_TO_FLOAT(224, 217, 15, 255))));
}
}