|
5 / 5 / 4
Регистрация: 01.06.2014
Сообщений: 55
|
||||||
Ошибка при запуске приложения из приложения WinAPI06.06.2014, 17:37. Показов 4914. Ответов 40
Метки нет (Все метки)
Здравствуйте.
Есть следующий код, найденный на просторах интернета.
Кто-нибудь может объяснить почему так и как это исправить?
0
|
||||||
| 06.06.2014, 17:37 | |
|
Ответы с готовыми решениями:
40
Ошибка при запуске Release-сборки приложения Ошибка при запуске приложения 0x0000007b Вывод сообщения на экран при запуске оконного приложения |
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||
| 06.06.2014, 20:57 | |||
![]() нормальный специалист, который очень хорошо знает внутренности винды По крайней мере, лучше, чем я ![]() Добавлено через 1 минуту ![]() нет монополии на истину главное не упорствовать в своих заблуждениях
0
|
|||
|
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
|
|
| 06.06.2014, 21:22 | |
|
0
|
|
|
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
|
|
| 06.06.2014, 21:35 | |
|
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 06.06.2014, 21:54 | |
|
villu,
теперь нас другой вопрос интересует почему у консоли 0 а у графики 6??? и какую такую хандлю она ломает?
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 06.06.2014, 21:57 | |
|
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 06.06.2014, 22:26 | ||
|
а на будущее? Если прога рухнет( или не рухнет), как узнать где копать?
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 06.06.2014, 22:36 | ||
|
например я в своей проге запускаю какой нибудь Фотошоп и он рухает, мне его дебажить? дело то не в фотошопе а в моей проге, то ли памяти недодал, то ли окружение кривое, то ли еще что нибудь, вот и пытаюсь понять принципиальна эта ошибка или нет
0
|
||
| 06.06.2014, 22:57 | ||||||
|
"Рухнувший" фотошоп выходит за рамки этой проблемы. И GetLastError тебе тут точно не поможет.
GetLastError Ставится в контексте твоего потока и используется тогда, когда нужно. в твоем случае он либо не запустится совсем, либо упадет, но уже без тебя. GetLastError( ) показывает переменную твоего потока, которую кто-то там где-то раньше установил. и Если тебе нужно знать кто, то нужно проверять результаты ВСЕХ функций, которые ты пользуешь (и которые это подразумевают). Иначе никак. ................
0
|
||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 06.06.2014, 23:09 | ||
|
значит ошибка появилась в программе "обертке"? или она пришла из запускаемой программы?
0
|
||
| 06.06.2014, 23:15 | |
|
ее установила какая-то _твоя_ функция. то есть в твоём процессе. От процесса, который ты запустил, ты можешь получить код завершения, например. Но это не тоже самое, что LastError
Например в коде у ТС SetLastError могли сделать CreateProcess, WaitForSingleObject и CloseHandle. Но так как автор не проверил их результат, сказать кто сложно.
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 06.06.2014, 23:18 | |
|
0
|
|
|
5 / 5 / 4
Регистрация: 01.06.2014
Сообщений: 55
|
||
| 06.06.2014, 23:51 [ТС] | ||
|
WaitForSingleObject возвратила WAIT_OBJECT_0 - тоже успех CloseHandle возвратила 1. Ну вот и отличненько ![]() Ещё раз спасибо всем выше отписавшимся. Не думал, что тут так быстро отвечают
0
|
||
|
Ушел с форума
|
|||||||||||||||||
| 07.06.2014, 09:53 | |||||||||||||||||
Сообщение было отмечено ValeryS как решение
Решение
Подытоживая все написанное выше...
завершилась с ошибкой. В других случаях, - если только это явно не отмечено в документации, как, например, с AdjustTokenPrivileges, - состояние last error не определено. Там может храниться что угодно, к примеру код какой-нибудь прошлой ошибки, никак не связанный с текущим состоянием. Другими словами, Win32-функции при успешном завершении не устанавливают last error в 0. И если уже проверять GetLastError, то делать это нужно сразу же после того, как Win32-функция вернула ошибку. Часто приходится видеть код примерно такого плана:
функции, какие там могу быть значения, устанавливается ли она в 0 в случае успешного завершения и т.д. - ответы на все эти вопросы следует искать в официальной документации, то есть, в MSDN, на странице с описанием функции. И если там не сказано, что last error принимает такое-то значение, значит, рассчитывать на это нельзя. Во-первых, в описании CreateProcess четко сказано:
потока, который его запустил. Собственно, вот: Ошибка при запуске приложения из приложения WinAPI Правильный и исчерпывающий ответ на вопрос уже дан. Запуск нового процесса - это "портянка" кода страниц так на пятьдесят. Неудивительно, что состояние переменных потока, таких как last error, может быть самым причудливым. "Правильные" процессы возвращают 0 в случае успешного завершения. Last error здесь не помощник.
3
|
|||||||||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 07.06.2014, 10:23 | ||
|
Убежденный,
Огромное спасибо!!! Вот ведь как бывает все по отдельности вроде известно, а вместе связать не получается ![]() но вот это как то мимо меня прошло Добавлено через 1 минуту Не по теме: Убежденный, отзыв почему то не могу оставить :cry:
0
|
||
| 07.06.2014, 10:23 | |
|
Помогаю со студенческими работами здесь
40
Ошибка линковщика при создании приложения Win32
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|