На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
  
> Ошибка "Приложение небыло запущено..." , или что нужно программе? какие DLL?
    Установлена чистая Windows XP. Без каких-либо обновлений и сторонних программ.

    Пробую запустить свою MFC-программу и получаю такую ошибку:
    Приложение небыло запущено, поскольку оно некорректно настроено.
    Повторная установка этого приложения может решить эту проблему.


    Но ведь моя программа без проблем работает на "обновленных" Windows XP!

    Что подскажете?
      значит приложение было собрано с настройкой
      Use of MFC -> Use MFC in a Shared DLL
      поставишь Use MFC in a Static DLL и всё должно быть нормально
        Да, было так собрано для того, чтобы узнать какие DLL-ки нужны программе.
        Т.е. при запуске Windows должна была бы выводить сообщение, что такая-то DLL не найдена,
        а тут вместо этого...

        Мне это нужно для того, чтобы узнать какие DLL использует программа.
          Цитата Vladimir_ @

          Мне это нужно для того, чтобы узнать какие DLL использует программа.

          А чо Dependency Walker не подходит? Он С MSVS в комплекте идет вроде (Depends.Exe)
            Цитата Vladimir_ @
            Т.е. при запуске Windows должна была бы выводить сообщение, что такая-то DLL не найдена, а тут вместо этого...

            Тут дело не в конкретной dll, а в версиях используемых в программе CRT и MFC, прописанных в манифесте проги. Если загрузчик не находит папку с dll-ками указанной версии (в XP они хранятся в ..\Windows\WinSxS - отдельно для CRT, ATL, MFC и т.п.), то выдает соотв-е сообщение, не разбираясь и не сообщая какие конкретно dll требуются

            Цитата Vladimir_ @
            Мне это нужно для того, чтобы узнать какие DLL использует программа

            Ну вот и глянь в ..\Windows\WinSxS, что входит в стандартные комплекты CRT и MFC
            Сообщение отредактировано: leo -
              Цитата KILLER @
              Цитата Vladimir_ @

              Мне это нужно для того, чтобы узнать какие DLL использует программа.

              А чо Dependency Walker не подходит? Он С MSVS в комплекте идет вроде (Depends.Exe)

              У себя на диске не нашел :(
              Скачал с сайта http://www.dependencywalker.com/

              Добавлено
              Цитата leo @

              Ну вот и глянь в ..\Windows\WinSxS, что входит в стандартные комплекты CRT и MFC


              Длинный списочек :D
                Уже ради эксперимента скопировал все DLL из обновленной Windows, которые выдает Depends в каталог программы, но ничего не поменялось :huh:
                Похоже придется ставить Visual Studio 2003, т.к. при сборке 2008 скорей всего надо какое-то обновление Windows..., хотя если статически линковать MFC, то все работает.
                Собрал пустой MFC-проект - симптомы те же :wall:

                Может кто еще чего подскажет?
                  Может, потому что их надо не просто копировать а соответствующим образом устанавливать, чтобы они оказались в WinSxS в нужном месте? Для этого надо либо скачать редист (Microsoft Visual C++ 2008 Redistributable Package (x86)/Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)/Microsoft Visual C++ 2008 Redistributable Package (x64)), либо, если используешь MSI-based инсталлятор то для него где-то в Program Files\Common Files\Merge Modules (для VC++2005 так) должны быть соотв. msm-модули.
                  Цитата Vladimir_ @
                  скопировал все DLL из обновленной Windows

                  Ты надеюсь не копировал такие DLL как user32.dll, kernel32.dll и т.д., а только mfc* msvcr* msvcp* atl*? :)
                    Цитата mitrich @
                    Может, потому что их надо не просто копировать а соответствующим образом устанавливать, чтобы они оказались в WinSxS в нужном месте? Для этого надо либо скачать редист (Microsoft Visual C++ 2008 Redistributable Package (x86)/Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)/Microsoft Visual C++ 2008 Redistributable Package (x64)),

                    Скачал, установил - все заработало! Спасибо!
                    Уже теплее...
                    Скачал ProcessMonitor, восстановил Windows, буду пробовать вычислять чего редист делает...
                      Посмотрел через ProcessMonitor что делает редист - здесь долго разбираться... ограничен во времени.
                      В принципе устраивает: если такая проблема (см. 1-й пост), то устанавливаем редист и все. Ну может быть потребуется какая-нибудь особая длл, но это уже мелочь...

                      Все равно для меня пока осталась загадка, что делает компоновщик при сборке со статической MFC, ведь тогда все работает и редист не нужен. Т.е. реестр отпадает.
                      А можно как-то узнать чего подключается в случае статической MFC? Похоже я всетаки какую-то длл пропустил...
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0611 ]   [ 16 queries used ]   [ Generated: 25.06.25, 05:46 GMT ]