Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sdim80
Зарегистрирован: 07.04.2006 Сообщения: 3
|
Добавлено: Пт Апр 07 2006 09:27 Заголовок сообщения: Проблема с запуском приложения созданного Vis. Studio |
|
|
Срочно нужна помощь в решении проблемы, связанной с разработкой на Visual Studio!
1) На Visual Studio 2005 (Visual C++) мною написано приложение Win 32.
Проблема: приложение работает только на том компьютере (Win XP), на котором разрабатывалось.
При попытке запуска на любом другом компьютере (также Win XP) выдается сообщение: "Приложение не было запущено поскольку
оно некорректно настроено. Повторная установка приложения может решить данную проблему."
Приложение создано на базе одного исходника "c" и одного ресурса "rc".
В проекте используется windows.h. Ни на какие другие библиотеки и ресурсы ссылок в проекте нет.
На всякий случай опишу функцию приложения. Она достаточно проста:
1 Выбрать в диалоге имя файла для сохранения данных.
2 Выбрать в окне (описанном в ресурсе) номер компорта.
3 Организовать по определенному протоколу обмен с устройством через компорт и сохранить принятые данные в файле п.1.
Уверен что мой вопрос является банальным, но суть дела такова, что я не являюсь программистом С/С++.
Я в темпе аврала решаю неожданно возникшую в рамках проекта задачу, которую необходимо реализовать под Windows
на базе имеющегося исходника на Си.
Времени хватает только на то чтобы создать и оттестировать программную логику и совсем не хватает на изучение
особенностей среды разработки.
2) Заодно уважаемых программистов под С++ прошу ответить на другой вопрос:
В той же среде создал пустой проект Win 32 (в предыдущем вопросе я создал проект через File\Project From Existing Code).
Внес в проект текст на Си тот же самый что в первом вопросе. Но не стал вносить ресурс с описанием окошка выбора компорта.
Компорт задал явно в тексте программы.
В итоге
условие ((hComm = CreateFile (szComPort [nPort], GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
истинно, хотя в первом варианте проекта (созданным через File\Project From Existing Code) это условие ложно и компорт номально открывается.
Дело в том что значение szComPort [nPort] соответствует COM1 и впервом и во втором моих проектах, смотрел по отладке.
Заранее благодарю за помощь. |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Сб Апр 08 2006 20:49 Заголовок сообщения: |
|
|
По вопросу 1. Возможно вы компилируете в режиме отладки? |
|
Вернуться к началу |
|
|
dipsy
Зарегистрирован: 26.01.2005 Сообщения: 424 Откуда: Н. Новгород
|
Добавлено: Вс Апр 09 2006 15:34 Заголовок сообщения: |
|
|
а как надо компилировать, чтобы приложение запускалось на других компах? |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Вс Апр 09 2006 20:33 Заголовок сообщения: |
|
|
Не знаю, я дальше 6й версии дело не имел... |
|
Вернуться к началу |
|
|
sdim80
Зарегистрирован: 07.04.2006 Сообщения: 3
|
Добавлено: Пн Апр 10 2006 13:14 Заголовок сообщения: |
|
|
Я создавал и DEBUG и RELEASE версию.
Дело не в этом, причину я нашел.
Скомпилированный ЕХЕ требует некоторые DLL.
Я до последнего надеялся что в ЕХЕ включается все что нужно или хотя бы в папку Release автоматически бросаются все используемые библиотеки.
Причину нашел попробовав запустить свое творение на Вин 2000.
Просто Вин ХР не говорит каких точно библиотек ему не хватает для запуска программы в отличие от Вин 2000.
Вобщем для Вин 2000 я вручную собрал все DLL, которые просила система, но вот, к сожалению, для Вин ХР этот набор не работает.
Я прекрасно понимаю что полный комплект, необходимый для работы приложения, надо формировать по-другому, но не знаю как.
Проект я закрыл, так как мое приложение должно работать на Вин 98, но может быть кто нибудь из уважаемых программистов подскажет как надо делать в будущем? |
|
Вернуться к началу |
|
|
sdim80
Зарегистрирован: 07.04.2006 Сообщения: 3
|
Добавлено: Пн Апр 10 2006 13:45 Заголовок сообщения: |
|
|
Помогло изменение настройки
Project Settings -> C/C++ -> Code Generation = Multi Threaded (/MT)
Всем спасибо! |
|
Вернуться к началу |
|
|
|