Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Проблемы с запуском приложения


Автор: AndAnd 4.6.2008, 06:38
Всем, привет!

Суть проблемы:

1) Имеется VS2005 + sp1, на нём откомпилорованы исходники самой проги и отдельно собственных библиотек. Был создан релиз как библиотек так и проги. При этом на данной машине всё работает как и должно работать smile

при переносе релиза и собственных библиотек на другую машину, программа не запускается, выдаётся ошибка по доступу к памяти.

2) имеются другие исходники, использующие в своей работе те же самые библиотеки (см. выше), они уже откомпилированны с помощью VS2005 без sp1, при запуске релиза и созданных (в пункте 1) ранее библиотек, т.е. это библиотеки откомпилированные VS2005+sp1, та же фигня, выдаётся ошибка по доступу к памяти.

В общем отсюда получается что, какая-то не совместимость, при этом не понятно почему релиз не работает на другой машине ???
Может кто-то сталкивался с данной проблемой? кто что посоветует?



Автор: Fazil6 4.6.2008, 10:32
Цитата(AndAnd @  4.6.2008,  06:38 Найти цитируемый пост)
Может кто-то сталкивался с данной проблемой? кто что посоветует?

ну ты бы хоть привел конкретно какую ошибку выдает. Скорее всего библиотек не хватает

Автор: AndAnd 4.6.2008, 17:28
Пока не могу выложить, может завтра получится.

вот похожая проблема:
http://forum.codenet.ru/showthread.php?t=37192

только там МФЦ, но по-моему проблема именно в разных версиях. Правда я так и не понял как она решается smile

Автор: bsa 4.6.2008, 22:53
Во-первых, какое отношение указанная проблема имеет к кросплатформенному программированию?
Во-вторых, проблема очень похожа на ошибку работы с памятью. Иногда, бывают случаи, что с одной версией библиотеки программа, содержащая ошибку, работает корректно, а с другой - нет. Прогоняй через детектор памяти (под gcc это valgrind, например).

Автор: AndAnd 5.6.2008, 02:33
Ну вообще-то библиотеки и программа у меня написаны с использованием QT, поэтому тема как говорится в ТЕМУ! 

Dsit я только привёл пример похожой проблемы, но там человек пишет на mfc.

Автор: AndAnd 5.6.2008, 05:04
Итак. Попробую обяснить на примере.

Есть два проекта: 
Library - динамическая библиотека, с одним методом:
              QString GetString();

Example - проект вызывающий метод библиотеки при запуске программы

1) Создал библиотеку library.dll (release) в среде MSVC2005+sp1

2) Перебрасываю на комп, library.dll и исходники проекта Example, где sp1 для MSVC2005 не установлен.

3) Компилирую на втором компе проект Example с имеющимися в директории release:  library.dll + library.lib файлами.
  (в настройках проекта указан путь до заголовочного файла library.h и ссылка на подключение библиотеки library.lib)

4) Вот что получается при запуске программы, смотрим скрин

Автор: AndAnd 5.6.2008, 08:56
Проблема решена.

взял дистрибутив из Visual'a, называется vcredist.exe, инсталлировал его на 
требуемой машине и всё заработало без компиляции!

Ура! smile

Всем спасибо.
особенно тому кто тему перенёс, без разбора ... smile 

б...я, как теперь тему закрыть  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)