Другое С/С++ Вопрос - Ответ

_Vine_

Активный
154
57
Он должен стоять внутри конструкции.
Если ты про скобки после case - то их можно вообще не ставить, и break может быть хоть в них, хоть за ними.
C++:
    for (int i = 0; i < 4; i++) {
        printf("Switch test %d: ", i);
        switch (i) {
        case 0: printf("1 ");
        case 1: {
            printf("2 ");
        }
        case 2: {
            printf("3 ");
            break;
        }
        case 3: {
            printf("4 ");
        } break;
        }
        printf("\n");
    }
Вывод:
Код:
Switch test 0: 1 2 3
Switch test 1: 2 3
Switch test 2: 3
Switch test 3: 4
 

DarkP1xel

Ухожу в армию... Вернусь через год.
BH Team
3,637
5,068
Если ты про скобки после case - то их можно вообще не ставить
Причем тут синтаксис? При использовании многослойного switch/case, внешний break нарушит слой и произойдет незапланированный выход. Зачем лишний раз себе палку в колеса пихать?
 

_Vine_

Активный
154
57
Причем тут синтаксис? При использовании многослойного switch/case, внешний break нарушит слой и произойдет незапланированный выход. Зачем лишний раз себе палку в колеса пихать?
Можешь привести пример того, где break нарушит слой?
 
  • Нравится
Реакции: Receiver

Receiver

leet-cheats 👑
Модератор
659
980
C++:
            static DWORD dwTime = 0;

            switch (state)
            {
                case 0: dwTime = GetTickCount(); SF->getSAMP()->getDialog()->SetInputText(""); state++;
                case 1:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_1)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Л");
                        state ++;
                        dwTime = GetTickCount();
                    }

                }
                case 2:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_2)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("О");
                        state ++;
                        dwTime = GetTickCount();
                    }

                }
                case 3:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_3)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Х");
                        state ++;
                        dwTime = GetTickCount();
                    }
                }
               case 6:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_4)
                    {
                        SF->getSAMP()->getDialog()->Close(1);
                        state = 0;
                    }
                }
        }

Скрипт моментально вводит слово и переходит к state 6 (закрытию диалога), как пофиксеть
 

_Vine_

Активный
154
57
C++:
            static DWORD dwTime = 0;

            switch (state)
            {
                case 0: dwTime = GetTickCount(); SF->getSAMP()->getDialog()->SetInputText(""); state++;
                case 1:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_1)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Л");
                        state ++;
                        dwTime = GetTickCount();
                    }

                }
                case 2:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_2)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("О");
                        state ++;
                        dwTime = GetTickCount();
                    }

                }
                case 3:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_3)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Х");
                        state ++;
                        dwTime = GetTickCount();
                    }
                }
               case 6:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_4)
                    {
                        SF->getSAMP()->getDialog()->Close(1);
                        state = 0;
                    }
                }
        }

Скрипт моментально вводит слово и переходит к state 6 (закрытию диалога), как пофиксеть
C++:
            static DWORD dwTime = 0;

            switch (state)
            {
                case 0: dwTime = GetTickCount(); SF->getSAMP()->getDialog()->SetInputText(""); state++; break;
                case 1:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_1)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Л");
                        state ++;
                        dwTime = GetTickCount();
                    }

                } break;
                case 2:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_2)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("О");
                        state ++;
                        dwTime = GetTickCount();
                    }

                } break;
                case 3:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_3)
                    {
                        SF->getSAMP()->getDialog()->SetInputText("Х");
                        state ++;
                        dwTime = GetTickCount();
                    }
                } break;
               case 6:
                {
                    if (GetTickCount() - dwTime > (DWORD)cc_delay_4)
                    {
                        SF->getSAMP()->getDialog()->Close(1);
                        state = 0;
                    }
                } break;
        }
 
  • Нравится
Реакции: Receiver

Vadim.dll

Известный
168
81
Как запустить ЖТА и пропустить всю фигню вначале?
У меня получилось убрать меню и перейти сразу к загрузке, но там начинается катсцена и жта виснет. Как ее пропустить, что нужно занопить?
 

ALF

Известный
Проверенный
320
545
Как запустить ЖТА и пропустить всю фигню вначале?
У меня получилось убрать меню и перейти сразу к загрузке, но там начинается катсцена и жта виснет. Как ее пропустить, что нужно занопить?
https://github.com/Whitetigerswt/gtasa_crashfix/blob/master/crashes/crashes/quickload.cpp#L104
 

Vadim.dll

Известный
168
81

Вложения

  • upload_2019-5-28_23-40-8.png
    upload_2019-5-28_23-40-8.png
    177.7 KB · Просмотры: 207

Receiver

leet-cheats 👑
Модератор
659
980
C++:
bool RegWriteInt(HKEY key, const char *name, int value)
{
    DWORD val = value;
    return RegSetValueExA(key, name, 0, REG_DWORD, (byte *)&val, 1) == ERROR_SUCCESS;
}

bool RegReadInt(HKEY key, const char *name, int &value)
{
    DWORD val = 0, type = REG_DWORD, size = 4;
    bool result = RegQueryValueExA(key, name, NULL, &type, (byte *)&val, &size) == ERROR_SUCCESS;
    value = val;
    return result;
}
нужно сделать чтение и запись int в реестр, не работает, что не так ?
 

Неадекватная сова

Известный
Проверенный
342
295
C++:
bool RegWriteInt(HKEY key, const char *name, int value)
{
    DWORD val = value;
    return RegSetValueExA(key, name, 0, REG_DWORD, (byte *)&val, 1) == ERROR_SUCCESS;
}

bool RegReadInt(HKEY key, const char *name, int &value)
{
    DWORD val = 0, type = REG_DWORD, size = 4;
    bool result = RegQueryValueExA(key, name, NULL, &type, (byte *)&val, &size) == ERROR_SUCCESS;
    value = val;
    return result;
}
нужно сделать чтение и запись int в реестр, не работает, что не так ?
https://blast.hk/threads/13855/
 

TheRuthArbiter

Неповторимый РПшер
Проверенный
523
306
Скорее всего не установлены компоненты для работы с C++ при установке студии либо DirectX 9-12
всё установлено.
Целевая платформа в свойствах проекта верно стоит?
upload_2019-5-31_15-58-55.png

Там вроде ничего не выставишь

Я переоткрыл проект, в итоге вот:
upload_2019-5-31_16-13-32.png
 

Cake_

Потрачен
Проверенный
263
314
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
всё установлено.

Посмотреть вложение 30891
Там вроде ничего не выставишь

Я переоткрыл проект, в итоге вот:
Посмотреть вложение 30893
Ты его с архива открываешь?

всё установлено.

Посмотреть вложение 30891
Там вроде ничего не выставишь

Я переоткрыл проект, в итоге вот:
Посмотреть вложение 30893
При установке студии надо установить запусти установщик и установи компоненты для работы с C++ которые у тебя не установлены