Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.30.162] |
|
Сообщ.
#1
,
|
|
|
Добрый день!Столкнулся с такой проблемой, моя программа использует окна WinApi,если запустить программу и через нее открыть проект данного приложения, то все ок, но если настроить файл проекта (чтобы при двойном клике он открывался именно моей программой), то приложение открывается, но висит, куда копать, что делать?Заранее благодарен!
|
Сообщ.
#2
,
|
|
|
Цитата piano @ то приложение открывается, но висит, куда копать, что делать? Наверное, сделать в студии Debug->Attach to process и посмотреть в отладчике на чём именно висит |
Сообщ.
#3
,
|
|
|
Цитата Олег М @ так не получается, как будто бы управление чему-то не передано |
Сообщ.
#4
,
|
|
|
Цитата piano @ так не получается, В смысле, не получается приаттачиться к процессу? Что вообще за проект, MFC? |
Сообщ.
#5
,
|
|
|
Цитата Олег М @ Нет, приаттачится получается, я просто задаю аргумент в настройках проекта именем проекта, который хочу сразу открыть при запуске приложения. Приложение открывается и загружает переданный в аргумент проект,но само приложение не отвечает ни на какие действия(клики по различным кнопкам), как будто бы поверх окна лежит слой, через который нельзя взаимодействовать с приложением. |
Сообщ.
#6
,
|
|
|
Цитата piano @ Приложение открывается и загружает переданный в аргумент проект,но само приложение не отвечает ни на какие действия(клики по различным кнопкам), как будто бы поверх окна лежит слой, через который нельзя взаимодействовать с приложением. Это вряд ли. Скорее всего приложение висит при обработке какого-то сообщения. Нажми в отладчике паузу и посмотри стеки всех потоков. |
Сообщ.
#7
,
|
|
|
Цитата Олег М @ не вижу ни в каком потоке, чтобы программа висела |
Сообщ.
#8
,
|
|
|
Цитата piano @ не вижу ни в каком потоке, чтобы программа висела Т.е. все потоки стоят в цикле ожидания сообщений, никто ничего не обрабатывает? Вообще, тут сложно что-то посоветовать не видя кода, как минимум. |
Сообщ.
#9
,
|
|
|
ИМХО висит код, отвечающий за разбор командной строки и передачу вытащенных оттуда имён файлов в открывающую документ функцию. Ведь по дефолту если ткнуть в документ, то приложение не знает, что с этим файлом делать. Если сначала открыть приложение, то потом пользователь сам идёт в меню, или жмёт кнопку открытия файла. Но если ткнуть в документ, а уже от него система откроет приложение, то их команд нет и приложение должно само вытащить имена файлов из командной строки и вызвать нужные функции. Это делается явно каким-то кодом, который Вы сами прописали в WinMain, или в явно вызываемой из WinMain функции. Вот этот код и висит. Также стоит проверить, висит ли приложение, если запустить само приложение двойным щелчком по файлу приложения, а не документа, но при не запущенной среде разработки.
|
Сообщ.
#10
,
|
|
|
Олег МА кто такая видя кода? И если ты не можешь до чтения кода предположить, какой кусок тебе нужен, то как ты вообще собрался отлаживать?
|