avatar_braga

Ошибка компиляции DLL, error C2078: слишком много инициализаторов - решение

Автор braga, 2013 Июнь 08, 23:17

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] компиляция dllerror c2078messageboxaexitprocess

braga

Спойлер
Ребята помогите!!! Компилирую dll все норм все делает но вот только я добавлю еще одну строку DUMP при компиляции дает ошибку
error C2078: слишком много инициализаторов!!!!

И под скобой красная волна при наведении вот что пишет!!!



Помогите как сделать так чтоб можно было добавлять DUMP приложений!!!

Заранее благодарен!!!!
[свернуть]
Проблемму решил!!!!


Если кто может помоч с решением поправки кода буду рад!!!

Вот сам код

MessageBoxA(NULL, "Don't use cheat programs!", "Blocked", MB_ICONERROR); - Выводит сообщение Don't use cheat programs!
ExitProcess(0); - Закрывает клиент

Вот вопрос как сделать так чтоб окно появлялось и закрывало клиент????

Profesor08

А можно весь код того блока. И объясни что точно происходит. Окошко успевает появиться? А после нажатия на кнопку OK, клиент закрывается? А если не нажимать, то играть дальше можно?

braga

#2
Спойлер
void SystemProcessesScan()
{
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);

if(Process32First(hProcessSnap, &pe32))
{
do
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
if(hProcess != NULL)
{
if(ScanProcessMemory(hProcess))
{
//MessageBoxA(NULL, "Don't use cheat programs!", "Error", MB_ICONERROR);
ExitProcess(0);
}
}
}
while(Process32Next(hProcessSnap, &pe32));
}
}
CloseHandle(hProcessSnap);
}

bool ScanProcessMemory(HANDLE hProcess)
{
for(int i = 0; i < MAX_PROCESS_DUMP; i++)
{
char aTmpBuffer[MAX_DUMP_SIZE];
SIZE_T aBytesRead = 0;
ReadProcessMemory(hProcess, (LPCVOID)g_ProcessesDumps[i].m_aOffset, (LPVOID)aTmpBuffer, sizeof(aTmpBuffer), &aBytesRead);

if(memcmp(aTmpBuffer, g_ProcessesDumps[i].m_aMemDump, MAX_DUMP_SIZE) == 0)
{
return true;
break;
}
}
return false;
}
[свернуть]

Да именно так окно появляеться но если не нажать ОК играть можно дальше!!!

Как тут видно то сообщение закоментированно
//MessageBoxA(NULL, "Don't use cheat programs!", "Error", MB_ICONERROR);
ExitProcess(0);

Но закрытие клиента работает если снимаем комент сообщения то коиент не закрывает!! Надо сделать так чтоб закрывало клиен и показивало сообщение!!!

Profesor08

Надо как-то блокировать окно MU

Как вариант, он очень хреновый, но сработает так как надо. Окошко появится, но при этом сама MU - закроется.

1. В папке Data создаешь файл: run.vbs
2. Открываешь его блокнотом.
3. Пишешь туда такую команду: MsgBox "Fuck you cheater!"
4. Сохраняешь.
5. Вместо функции MessageBoxA(...); Пишешь:
ShellExecute(NULL, NULL, _T("Data\\run.vbs"), _T("1"), NULL, SW_HIDE);
6. Вот и все.

braga

Спс щас попробуем!!!!

Может еще подскажешь как проверку на елиту всунуть?

Profesor08


Похожие темы (5)