- 1,043
- 474
sprintf custom function?It gives me this error.
C++:CambiarColor.c_str() = Error (active) E0153 The expression must have a class type, but it has the type "char
sprintf custom function?It gives me this error.
C++:CambiarColor.c_str() = Error (active) E0153 The expression must have a class type, but it has the type "char
i think so, the error occurs with this codesprintf custom function?
if (pshow >= 174)
{
const char* CambiarColor = "{0000FF}";
}
if (!pshow < 201 && pi == true && autocolor == true)
{
sprintf(pall, "%s %d", CambiarColor.c_str(), pshow);
pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false);
}
The code is correct. His work logic is not correct. In the second condition, there is no variable CambiarColor and char it type and he has't member's functions.i think so, the error occurs with this code
C++:if (pshow >= 174) { const char* CambiarColor = "{0000FF}"; } if (!pshow < 201 && pi == true && autocolor == true) { sprintf(pall, "%s %d", CambiarColor.c_str(), pshow); pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false); }
what should i do? can u help me?The code is correct. His work logic is not correct. In the second condition, there is no variable CambiarColor and char it type and he has't member's functions.
i think so, the error occurs with this code
C++:if (pshow >= 174) { const char* CambiarColor = "{0000FF}"; } if (!pshow < 201 && pi == true && autocolor == true) { sprintf(pall, "%s %d", CambiarColor.c_str(), pshow); pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false); }
const char* CambiarColor = "{0000FF}";
if (pshow >= 174)
{
// example
printf("%s", CambiarColor);
}
if (!pshow < 201 && pi == true && autocolor == true)
{
char pall[64] = {0};
sprintf(pall, "%s %d", CambiarColor, pshow);
pFont->Print(pall, D3DCOLOR_ARGB(0XFF, 0XFF, 0xFF, 0xFF), 500, 400, false);
}
Возможно ли получить путь по названию процесса без прав администратора? С помощью OpenProcess и последующим GetModuleFileNameEx не работает, если файл, например, находится в Program Files.
#include <Windows.h>
#include <iostream>
#include <TlHelp32.h>
DWORD GetProcessId(const char* processName) {
DWORD processId = 0;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot == INVALID_HANDLE_VALUE)
{
std::cout << "Error: Unable to create process snapshot\n";
return -1;
}
BOOL success = Process32First(hSnapshot, &pe32);
while (success)
{
if (_stricmp(pe32.szExeFile, processName) == 0)
{
processId = pe32.th32ProcessID;
break;
}
success = Process32Next(hSnapshot, &pe32);
}
CloseHandle(hSnapshot);
if (processId == 0)
{
std::cout << "Error: Process not found\n";
return -1;
}
return processId;
}
int main()
{
DWORD processId = GetProcessId("notepad.exe");
if (processId == -1) {
std::cout << "Error: Unable to find process" << std::endl;
return 1;
}
HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, processId);
if (hProcess == nullptr)
{
std::cout << "Error: Unable to open process\n";
return 1;
}
char path[MAX_PATH];
DWORD pathLength = sizeof(path);
BOOL success = QueryFullProcessImageName(hProcess, 0, path, &pathLength);
if (success)
std::cout << "Path: " << path << "\n";
else
std::cout << "Error: Unable to get process path\n";
CloseHandle(hProcess);
return 0;
}
char piluluall[64] = { 0 };
int pshow = (int)PEDSELF->GetHealth() + (int)PEDSELF->GetArmor();
if ((int)pshow <= 30)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 255, 0, 0), 500, 400, false); // {FF0000} | R = 255 | G = 0 | B = 0 |
}
else if ((int)pshow > 30)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 255, 110, 0), 500, 400, false); // {FF6E00} | R = 255 | G = 110 | B = 0 |
}
else if ((int)pshow > 49)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 255, 180, 0), 500, 400, false); // {FFB400} | R = 255 | G = 180 | B = 0 |
}
else if ((int)pshow > 74)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 255, 255, 0), 500, 400, false); // {FFFF00} | R = 255 | G = 255 | B = 0 |
}
else if ((int)pshow > 99)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 150, 255, 0), 500, 400, false); // {96FF00} | R = 150 | G = 255 | B = 0 |
}
else if ((int)pshow > 124)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 0, 255, 0), 500, 400, false); // {00FF00} | R = 0 | G = 255 | B = 0 |
}
else if ((int)pshow > 149)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 0, 255, 255), 500, 400, false); // {00FFFF} | R = 0 | G = 255 | B = 255 |
}
else if ((int)pshow > 174)
{
sprintf(piluluall, "%d", (int)pshow);
pFont->Print(piluluall, D3DCOLOR_ARGB(0XFF, 0, 0, 255), 500, 400, false); // {0000FF} | R = 0 | G = 0 | B = 255 |
}
#include <kthook/kthook.hpp>
bool state = false;
kthook::kthook_simple<unsigned(__stdcall*)(void*, unsigned, unsigned, unsigned)> hook{
0x747EB0,
[](const auto& hook, void* hwnd, unsigned umsg, unsigned wparam, unsigned lparam) {
if (uMsg == WM_KEYDOWN && wparam == VK_F2 && !(lparam & KF_REPEAT)) {
state = !state;
for (auto value : {0x5109AC, 0x5109C5, 0x5231A6, 0x52322D, 0x5233BA}) {
unsigned old;
VirtualProtect(reinterpret_cast<void*>(value), 1, PAGE_READWRITE, &old);
if (state) *reinterpret_cast<unsigned char*>(value) = 0xEB;
else *reinterpret_cast<unsigned char*>(value) = (value <= 0x5109C5) ? 0x7A : 0x75;
VirtualProtect(reinterpret_cast<void*>(value), 1, old, &old);
}
}
return hook.get_trampoline()(hwnd, umsg, wparam, lparam);
}
}
Переведи длл-ку или что у тебя там в байты и запиши это в массив, далее из этого массива создаешь файл и записываешь в него. ГотовоКак запихнуть к проекту дллку? У меня есть самый простой инжектор в процесс, к которому должна быть в этом же каталоге дллка, что бы я мог вписать её название и она заинжектилась в процесс, можно сделать так, что бы длл была скомпилирована вместе с исполняемым файлом .exe?
А это сработает если у меня сторонняя длл? Не мной написана, и нету исходника еёПереведи длл-ку или что у тебя там в байты и запиши это в массив, далее из этого массива создаешь файл и записываешь в него. Готово
даА это сработает если у меня сторонняя длл? Не мной написана, и нету исходника её
Color is written as INTC++:static float color[3]{ 0.0f, 0.0f, 0.0f };
I need some function to take the color from the .INI itself that does not cause me problems, since the function that I use takes them like this:C++:if (!ImGui::ColorEdit3("Color", color, ImGuiColorEditFlags_PickerHueWheel)) { set_int_to_ini(INI_SECTION, INI_KEYR1, std::to_string(int(color[0] * 255))); set_int_to_ini(INI_SECTION, INI_KEYG1, std::to_string(int(color[1] * 255))); set_int_to_ini(INI_SECTION, INI_KEYB1, std::to_string(int(color[2] * 255))); }
Can anyone help me or know of a better way to do this?
ImVec4 color = {0.0f, 0.0f, 0.0f, 0.0f};
ImGui::ColorEdit4("Color", (float*)&color, ImGuiColorEditFlags_PickerHueWheel);
ImU32 color_hex = ImColor(color);
// or
ImU32 color_hex = ImGui::GetColorU32(color);