| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Проблемы с запуском приложения |
| Автор: AndAnd 4.6.2008, 06:38 |
| Всем, привет! Суть проблемы: 1) Имеется VS2005 + sp1, на нём откомпилорованы исходники самой проги и отдельно собственных библиотек. Был создан релиз как библиотек так и проги. При этом на данной машине всё работает как и должно работать при переносе релиза и собственных библиотек на другую машину, программа не запускается, выдаётся ошибка по доступу к памяти. 2) имеются другие исходники, использующие в своей работе те же самые библиотеки (см. выше), они уже откомпилированны с помощью VS2005 без sp1, при запуске релиза и созданных (в пункте 1) ранее библиотек, т.е. это библиотеки откомпилированные VS2005+sp1, та же фигня, выдаётся ошибка по доступу к памяти. В общем отсюда получается что, какая-то не совместимость, при этом не понятно почему релиз не работает на другой машине ??? Может кто-то сталкивался с данной проблемой? кто что посоветует? |
| Автор: Fazil6 4.6.2008, 10:32 |
ну ты бы хоть привел конкретно какую ошибку выдает. Скорее всего библиотек не хватает |
| Автор: AndAnd 4.6.2008, 17:28 |
| Пока не могу выложить, может завтра получится. вот похожая проблема: http://forum.codenet.ru/showthread.php?t=37192 только там МФЦ, но по-моему проблема именно в разных версиях. Правда я так и не понял как она решается |
| Автор: 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, инсталлировал его на требуемой машине и всё заработало без компиляции! Ура! Всем спасибо. особенно тому кто тему перенёс, без разбора ... б...я, как теперь тему закрыть |