![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Добрый день.
Подскажите плз, что за ужасть случилась с моим проектом: сегодня прихожу на работу, включаю vc++ 2005, моя прога компилируется, а отладочный exe запускаться не желает потому что "Unable to start program .....exe". программка - win32 проект под winapi. проверил другие проекты - идут и консольные и оконные. во время компиляции ошибок не пишет. говорит что build sucsess, 0 errors, 0 warnings. Пробовал просто сам ехе запустить через проводник, выскакивает окошко с надписью: ...exe не является приложением win32. Пробовал создать новый проект и туда исходник закинуть, всё равно не запускается. Подскажите плз, в чем может быть дело? Дополнение: Стал разбираться, пошел по истории исходников: неделю назад стал менять структуру программы т.к. нашел логическую нестыковку в модели и как только я начал менять структуру, сразу появилась такая фигня. Просто я не запускал программу пока блоки переделывал (всё равно бестолку), только компилировал чтобы на ошибки проверить. В чем может быть дело? Это сообщение отредактировал(а) Andrej23 - 19.8.2011, 10:41 |
|||
|
||||
| spyswamp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: нет Всего: 7 |
Манифест.
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
| Andrej23 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Вот файл rrr.exe.embed.manifest
Вот файл rrr.exe.intermediate.manifest
да, манифесты стандартные (я про них даже и не знал ничего). Прога, которая до изменения структуры вполне себе работает, соответственно манифесты там генерируются правильно, после изменения exe не включается. Это сообщение отредактировал(а) Andrej23 - 19.8.2011, 13:27 |
||||
|
|||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Посмотрел манифест файлы той версии, которая работает - они точно такие же. Наверное дело в чем-то другом.
при пересоздании ехе пишется такая строка: LINK : C:\cpp\r_r\Debug\r_r.exe not found or not built by the last incremental link; performing full link Это сообщение отредактировал(а) Andrej23 - 19.8.2011, 14:48 |
|||
|
||||
| spyswamp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: нет Всего: 7 |
А ты как пересобираешь? Clean/Rebuild? Попробуй еще вручную весь интермидиэйт стереть.
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
стер содержимое папок debug, снова нажал Rebuild, результат тот же.
|
|||
|
||||
| Estranged |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: 3 Всего: 3 |
Может быть собранный exe не win32, а win64 или еще что. Поглядеть на него pe просмотрщиком надо бы.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Спасибо, return 0 сегодня попробую. Иначе похоже придется отсекать куски программы чтобы понять из-за какого куска неправильно компилируется.
(возможно где-то в структуре классов получилась циклическая ссылка друг на друга. не факт, но как вариант).
Эта прога, вариант неделей раньше запускается (в этом же проекте просто перезаписываю cpp файл). Св-ва проекта не менял. Только изменил структуру классов и дописал несколько функций. Сам проект win32. А как включить репросмотрщик и что это? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Может ему стало не хватать какой-нибудь DLL после этого? Dependence-вьюером его посмотри... причем полностью (рекурсивно, все зависимости). У меня были ситуации, когда с какого-то перепуга проект цеплял DLL не той версии... Dependence-viewer - это утилита, которая, как следует из названия, показывает все библиотеки, которые требуются для загрузки exe. Должна быть в составе MSVC (называется Depends.exe), но есть и куча других, только свистни гуглу... Полезно иметь в арсенале программиста. -------------------- ... |
|||
|
||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
проверил return 0; первой строкой в tWinMain() - результат не изменился. Вчера попробовал скомпилировать этот же проект на VS 2008, а не на 2005 - выдало ошибку что не хватает database ' ' (может это как-то поможет).
Посмотрел через Depends view: IESHIMS.DLL не удается найти указанный файл (2) WER.DLL не удается найти указанный файл (2) MPR.DLL просто значок красный (может активный?) Warning: At least one delay-load dependency module was not found. Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. этот IESHIMS.DLL и wer.dll вызываются из setupapi.dll-> shell32.dll -> shdocvw.dll -> mshtml.dll -> iframe.dll Дополнение: посмотрел exe файл недельной давности. Те же файлы пишутся ненайденными, но всё работает (странно). В mpr.dll функция WNetRestoreConnectionA помечена красным. Это сообщение отредактировал(а) Andrej23 - 22.8.2011, 10:58 |
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
http://social.technet.microsoft.com/Forums...3-c720ccbd3d2c/
т.е., я так понимаю на работе стоит что-то выше XP? Добавлено через 4 минуты и 29 секунд хотя, нет, наверное даже не так: компилируется в конфигурации для чего-то выше чем XP (ну и соответственно, на чем-то выше XP, раз сборка таки проходит удачно), а запускается на XP и ниже? Добавлено через 12 минут и 39 секунд
а может все проще: это реально не win32, а WOW64, и это не ошибка приложения, а ошибка совместимости, т.е. этот exe можно запускать только на 64-битных осях -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Нет, у меня XP SP3.
Прога (вариант неделей раньше) компилируется и запускается на этой же машине, в ней просто заменяю основной cpp файл. Cам проект win32. Делаю без всяких заморочек. VC++ и winapi. Прога со стороны программирования примитивнейшая (расчеты и вывод), никаких изысков. Это сообщение отредактировал(а) Andrej23 - 22.8.2011, 16:13 |
|||
|
||||
| Andrej23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 3.11.2006 Репутация: нет Всего: нет |
Разобрал прогу, оставил только структуру классов - не работает. Перекинул структуру классов в новый сгенерированный проект (только основное окно и менюшка).
Потом стал уже отключать классы по очереди. На одном из классов пограмма заработала. Стал подключать классы обратно - программа всё равно работает. между включениями удалял каталог debug c exe файлом. Единственное, что удалось засечь - это строку LINK : C:\cpp\r_r\Debug\r_r.exe not found or not built by the last incremental link; performing full link когда программа не запускалась. Добавление: замучился. посмотрите плз, в чем дело. Выкладываю максимально урезнный код - часть структуры классов в сгенерированном проекте win32 оконном. Этот вариант компилируется, но не запускается:
Это сообщение отредактировал(а) Andrej23 - 22.8.2011, 16:05 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Покажите как определены макросы, (и определены ли?)
_WIN32_WINNT WINVER Скорей всего, дело в них. Они находятся либо в "stdafx.h" либо в "targetver.h" Также определить этот макрос можно с помощью параметра компилятора /D, так что и командную строку не помешает посмотреть. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |