При запуске программы ничего не происходит

При запуске программы ничего не происходит

В последнее время я очень сильно разочарован SDL2. Здесь нет вариантов, так что обращаюсь за помощью к кому-то знающему. Я пытаюсь заставить эту чертову штуку работать на Windows 8.1.
У меня не было проблем с использованием первого SDL на Windows 7, который прошел на одном дыхании. Однако SDL2 — это не тот случай.

Я следую за учебниками на «http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/codeblocks/index.php «с использованием самого последнего обновления кодовых блоков + minGW32. Я также пробовал это на Orwell Dev C ++ + minGW32.
Однако происходит что-то очень странное, чего я никогда раньше не видел в программировании. Мой компилятор не дает мне никаких ошибок. Однако при запуске программы ничего не происходит. Окно должно быть создано и отложено на несколько секунд. Я также попробовал учебник части 2, чтобы показать изображение, и опять ничего не происходит.

Я убедился, что ни одна из программ не заблокирована брандмауэром Windows, и запустил программу и .exe в качестве администратора.

Компилятор не выдает ошибок.

SDL2.dll находится в папке .exe.

Я скачал SDL2.0.3 по ссылке на сайте, скачал и применил исправление для этого файла .h, который дает компилятору
ошибки в SDL2.0.3, но не SDL2.0.0, загруженные в
https://hg.libsdl.org/SDL/raw-file/e217ed463f25/include/SDL_platform.h

Я добавил папку lib и include в Параметры компилятора для SDL2.0.3.

Я добавил строку компоновщика: -lmingw32 -lSDL2main -lSDL2 (также пробовал -lmingw32 -lSDL2 -lSDL2main и как 10 других вещей, найденных на
форумы).

Я пытался использовать как Debug, так и Release-компиляторы.

Я пытался создать программу как приложение с графическим интерфейсом и консольное приложение. В SDL1 я скомпилирован как приложение с графическим интерфейсом. В SDL2 это
просто компилируется, но когда запускается, он абсолютно ничего не делает. Когда побежал
как консольное приложение, всплывает консольное окно, программа
перестает отвечать, а затем консоль показывает, что процесс завершен после
6,357 секунды с возвращаемым значением 255.

Я точно следовал всем инструкциям, используя Code :: Blocks, а затем Dev C ++ IDE, и до сих пор ничего не получаю, те же результаты. Работал и гуглил это 2 дня. Что, во имя Бога, вызывает у меня весь этот стресс?
Если у вас есть предложения или вы пережили эту трагедию, пожалуйста, помогите! T.T

Код очень простой, как показано:

Это вывод компилятора из Dev C ++:

Наконец-то решено. Как мне показалось, это была какая-то проблема с Windows или Windows 8.1, просто шутки ради меня. Я был очень осторожен и перезагружал SDL2.0.3 и повторно применил этот патч для SDL_platform.h.
Затем я полностью удалил ВСЕ из IDE, которые я пробовал, переустановил Dev C ++ в режиме совместимости с Windows 7 как администратор на рабочем столе (т.е. не в Program Files x86).
Затем я снова все настроил, и все получилось.

Может быть проблема с администратором Windows 8.1 BS shenanigans, или режимом совместимости, или поврежденной загрузкой ранее, или SDL, который я использовал, ИЛИ даже тот факт, что он был установлен для программных файлов x86, который имеет пробел в пути к файлу и ограниченные права потому что окна.

Читайте также:  Почему не могу поменять язык на компьютере

Так что проблема: потому что окна.

Решение

Проблема в том, что вы никогда не позволяете окнам войти в цикл обработки событий. Учебное пособие, из которого вы читаете, предполагает, что окно будет отображаться без обработки событий, что произойдет не на всех платформах.

Просто делаю SDL_Delay( 2000 ); будет просто спать в течение 2 секунд, но это не позволит потоку обрабатывать события в это время.

Если вы замените эту одну строку с

Он будет работать нормально (хотя он занят ожиданием, но вы можете позаботиться об этом позже)

Другие решения

Наконец-то решено. Как мне показалось, это была какая-то проблема с Windows или Windows 8.1, просто шутки ради меня. Я был очень осторожен и перезагружал SDL2.0.3 и повторно применил этот патч для SDL_platform.h. Затем я полностью удалил ВСЕ из IDE, которые я пробовал, переустановил Dev C ++ в режиме совместимости с Windows 7 как администратор на рабочем столе (т.е. не в Program Files x86). Затем я снова все настроил, и все получилось.

Может быть проблема с администратором Windows 8.1 BS shenanigans, или режимом совместимости, или поврежденной загрузкой ранее, или SDL, который я использовал, ИЛИ даже тот факт, что он был установлен для программных файлов x86, который имеет пробел в пути к файлу и ограниченные права потому что окна.

Так что проблема: потому что окна.

Вы должны получить ошибку компилятора; Ваши аргументы для SDL_CreateWindow транспонированы.

Описание

  • При попытке запустить exe файл выскакивает окно с просьбой выбрать программу;
  • Все exe файлы пытаются запуститься в одной и той же программе;
  • При запуске программы ничего не происходит.

Причина

Модификация конфигурационного файла. Обычно, из-за вируса или некорректного редактирования реестра Windows.

В некоторых случаях запуск блокируется антивирусной системой.

Решение

1. Использование Reg-файла

    Скачайте архив с reg-файлом для соответствующей версии Windows:

Windows XP Windows Vista Windows 7 Windows 8 Windows 10

  • Распакуйте содержимое архива и запустите его, кликнув дважды. В появившемся окне нажмите «Да»;
  • Перезагрузите компьютер.
  • Если при попытке импорта скачанного файла система возвращает ошибку и пишет о нехватке прав, откройте командную строку от имени администратора и введите команду
    REG IMPORT C:путь_к_reg_файлу.reg

    2. Настройка реестра вручную

    Запускаем реестр Windows (команда regedit).

    Находим HKEY_CLASSES_ROOT.exe и задаем значение exefile параметру (По умолчанию):

    Теперь ищем HKEY_CLASSES_ROOTexefileshellopencommand и задаем его параметру (По умолчанию) значение "%1" %*

    То же самое делаем для HKEY_CLASSES_ROOTexefileshellopen:

    . и HKEY_CLASSES_ROOTexefile:

    Если в параметрах будет пустое значение или что-то иное, меняем его на "%1" %*.

    После перезагружаем компьютер.

    3. Отключение или удаление антивируса

    В некоторых случаях, антивирусная система может воспринимать файл как зловредный и блокировать его запуск. Если у нас есть полная уверенность, что запускаемый нами файл безопасен, попробуем отключить антивирусную систему или добавить файл в исключения.

    Иногда, отключение антивирусника не помогает решить проблему — помогает его удаление. Для проверки, можно это сделать (позже, необходимо его поставить снова). Бывает, что после повторной установки программы защиты от вирусов, проблема исчезает.

    Читайте также:  Как скриншотить на айфоне

    4. Удаление временного профиля

    Обратите внимание на сообщение при входе в систему. Если появляется предупреждение о том, что был выполнен вход под временным профилем, то проблема заключается в ошибке службе профилей ProfSvc.

    В чем была проблема?

    Если вам удалось решить проблему, поделитесь своим опытом для других. Что помогло:

    Не запускаются программы в Windows 710.

    Иногда пользователи сталкиваются с ситуацией, когда система перестаёт реагировать на двойной щелчок по ярлыку программы или не вызывается из меню программ. Таким образом, не запускаются программы, вчера ещё прекрасно работавшие. Поиск запущенной соответствующей службы или исполняемого файла ничего не даёт: диспетчер задач, кроме запущенных при загрузке системы программ, ничего не показывает.

    • Если программы не просто не запускаются, но и выдают ошибку о невозможности сопоставить программу файлу, советую обратиться к статье Ошибка ” Этому файлу не сопоставлена программа…”
    • Это и не вариант, когда не запускаются программы по той причине, что в системе завелась какая-то зараза. Об этом читайте в статье Windows не может открыть файл или программу
    • Убедитесь в том, что у вас достаточно прав на запуск программы или просмотр директории. А это легко сделать, прочитав статью Полный доступ к папкам Windows.

    СИМПТОМЫ (возможные)

    • после щелчка по иконке не открываются программы
    • сообщений об ошибках нет
    • при попытке установить новую программу или переустановить прежнюю Windows выдаёт ошибку
    • в Диспетчере задач (если его удалось открыть)
    • на мгновение появляется и сразу исчезает процесс Peachw.exe (про него первый же абзац)

    Не запускаются программы. Лечение номер раз.

    Попробуйте в Диспетчере задач выцепить этот самый Peachw.exe. И закройте всё дерево процессов. Если после этого ярлыки начинают отзываться на двойной щелчок, щёлкните по процессу правой мышкой, выберите Свойства и в окне проследите путь к файлу. Вам остаётся только удалить программу или файл, который процесс запускает. Если ничего подозрительного, идём далее.

    Не запускаются программы. Способ номер два.

    Не спешите переустанавливать программы, если эта ошибка повторяется не с одной, а несколькими программами, скорее всего повреждена ветка реестра, отвечающая именно за запуск программ и их ассоциацию из контекстного меню. Находится она здесь:

    Главное – определить, что именно повреждено в этих записях. “Чистые записи” кустов имеют такой вид (соответственно):

    т.е. параметр по умолчанию должен быть

    В Windows 10 тоже самое:

    Для ветки (тут же) PersistentHandler:

    Спускаемся слева по разделу ниже. Для HKEY_CLASSES_ROOTexefile:

    Небольшое отступление по поводу именно этого параметра. Оба варианта по умолчанию верны, однако если после перезагрузки Windows (и изменения параметров реестра как указано) результат не достигнут, вернитесь в предыдущий куст реестра и смените значение параметра с Приложение (Application) на переменную:

    Перезагрузитесь и проверьте. Если ситуация с запуском исполнительных файлов сразу поправилась, давайте настроим ассоциации для этой переменной и из контекстного меню тоже. Для этого снова вернитесь к ключу exefile и разверните его до ключа shellopen. Справа в параметре По умолчанию смените его значение с (значение не присвоено) на уже вам знакомый

    Читайте также:  Самсунг анонсировал новый смартфон

    Перезагружаемся и проверяем.

    КСТАТИ

    В этом разделе подкустов множество, поэтому возьмём для себя за правильное действие сравнить имеющиеся в вашей системе записи с оригинальными. Это можно сделать, взяв их с любой стабильно работающей системы (дома или на работе, у знакомых). Просто копируете разделы и затем экспортируете их в свой реестр. Правда, был вариант, когда я столкнулся с вытекающей отсюда проблемой…- не запустился сам редактор реестра. Но выход находится очень быстро, когда пользуешься не встроенным редактором реестра, а редактором сторонних разработчиков. А самый оптимальный вариант работы с повреждённой системой и её реестром – работать не из под самой системы, а на базе загрузочного диска. Один из вариантов – утилита Kaspersky Registry Editor или загрузочный диск по типу Hiren’s BootCD. Правда, придётся скачать весь загрузочный диск, но это того стоит. По этой ссылке можно найти полное описание принципов работы с диском в целом и конкретно с реестром. Если нет на это времени, качайте просто редактор и попробуйте загрузиться из под системы. Самый простой вариант – родной редактор от Windows, он “весит” немного, и скачать его можно в сети где-угодно. К слову сказать, пора вам позаботиться о специальном внешнем боксе с жёстким диском внутри, где хранятся все нужные образы Windows всех поколений и версий плюс ремонтные утилиты.

    Способ номер три: чистый запуск

    Давайте попробуем исключить запуск конфликтующих программ. Самый действенный для того способ – чистый запуск. С этим справится утилита msconfig из строки поиска.

    Дело в том, что запускаемые одновременно с системой программы постоянно “висят” на заднем фоне. Однако Windows не способна разобрать, как эти программы друг с другом соотносятся. А потому вполне вероятно некоторые из них могут друг с другом не дружить в отношении некоторых других запускаемых программ, утилит или даже файлов.

    Покажу процесс настройки на примере Windows 7. Принцип для новых версий тот же, не запутайтесь только в интерфейсе.

    • Вызовем msconfig (msconfig.exe) через строку поиска Windows
    • Выберем вкладку Общие и запретим загружать элементы автозагрузки
    • отправляемся во вкладку Службы. Пунктов здесь вас встретит много. А изучать их не нужно. Сначала скроем службы самой Windows, а потом всё выключим. Смотрите на рисунке очерёдность действий:

    Перезагружайтесь. Сейчас Windows запустится БЕЗ ПРОГРАММ ФОНОМ. Не запустятся некоторые из привычных программ, но всё можно будет поправить. Однако, если после отключения автозагрузки, проблема решилась, значит мы с вами на верном пути и теперь можно будет включать элементы поэтапно, пока либо ошибка не проявится, либо не появится вообще. Вернуться к запуску всех служб полным списком можно будет установив во вкладке Общие значок напротив пункта Обычный запуск.

    Ссылка на основную публикацию
    Представьте что вы приглашены
    Обратить внимание на структуру урока: Цель: мотивировать деятельность учащихся на уроке; Эмоционально настроить детей на работу. 2. Словарно – орфографическая...
    Потух экран на ноутбуке что делать
    В этой статье мы рассмотрим возможные решения проблемы, когда ноутбук работает но не включается экран. Это может произойти с каждым...
    Поцарапала сковороду с антипригарным покрытием что делать
    Сковорода с антипригарным напылением — это современная кухонная утварь, которая есть почти на каждой кухне. Благодаря покрытию пища не прилипает...
    Правила покупки билетов на поезд
    » Железнодорожный транспорт » Правила продажи билетов на поезд Как купить железнодорожные билеты на поезд? Проездные документы действительны только по...
    Adblock detector