Народ, помогите плз решить проблему.
Есть приложение, состоящее из 30 проектов — движок базы данных. В результате билда приложения, получаются exe и 6 штук dll.
Проект написан под х32, нужно запустить его под х64. В настройках каждого проекта добавил вариант загрузки под х64, собираю без проблем,
но когда запускаю exe выдает ошибку Failed to initialize. Посмотрел через DLL Dependenсce, там есть ошибки совместимости Error: Modules with different CPU types were found., но не моих собранных DLL, а стандартных виндовских, например NTDLL.dll, Kernel32.dll и т.д.
Работаю на Windows Server x64, студия 2005.
Подскажите, может есть какие-то тонкости сборки под x64.
Спасибо.
З.Ы. Собранный проект под x32 запускается без проблем.
> Есть приложение, состоящее из 30 проектов — движок базы данных. В результате билда приложения, получаются exe и 6 штук dll. > Проект написан под х32, нужно запустить его под х64. В настройках каждого проекта добавил вариант загрузки под х64, собираю без проблем, > но когда запускаю exe выдает ошибку Failed to initialize.
Поищите для начала, может какая-то из ваших DllMain возвращает 0.
> Посмотрел через DLL Dependenсce, там есть ошибки совместимости Error: Modules with different CPU types were found., но не моих собранных DLL, а стандартных виндовских, например NTDLL.dll, Kernel32.dll и т.д.
Это скорее всего depends врет. У меня он тоже на все подряд ругается, однако работать программе это не мешает.
> Работаю на Windows Server x64, студия 2005. > Подскажите, может есть какие-то тонкости сборки под x64. > Спасибо. > З.Ы. Собранный проект под x32 запускается без проблем. >
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[2]: Проблема сборки приложения под x64
От:
Аноним
Дата:
21.08.07 16:59
Оценка:
Здравствуйте, Sergey, Вы писали:
S>Поищите для начала, может какая-то из ваших DllMain возвращает 0.
Да, уже пробовал, все DllMain отрабатывают корректно. Но не срабатывает точка входа в .exe.
В дебаг режиме в output окне ошибки :
First-chance exception at 0x00000001806dfd5e in app.exe: 0xC0000005: Access violation reading location 0x0000000080b876b8.
First-chance exception at 0x77f52709 in app.exe: 0xC0000005: Access violation.
Unhandled exception at 0x77f52709 in app.exe: 0xC0000005: Access violation.
В CallStack следующее:
ntdll.dll!0000000077f52709()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!0000000077f1aa97()
ntdll.dll!0000000077ef30a5()
kernel32.dll!0000000077d59620()
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Sergey, Вы писали:
S>>Поищите для начала, может какая-то из ваших DllMain возвращает 0. А>Да, уже пробовал, все DllMain отрабатывают корректно. Но не срабатывает точка входа в .exe. А>В дебаг режиме в output окне ошибки :
А>First-chance exception at 0x00000001806dfd5e in app.exe: 0xC0000005: Access violation reading location 0x0000000080b876b8. А>First-chance exception at 0x77f52709 in app.exe: 0xC0000005: Access violation. А>Unhandled exception at 0x77f52709 in app.exe: 0xC0000005: Access violation.
А>В CallStack следующее: А> ntdll.dll!0000000077f52709() А> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] А> ntdll.dll!0000000077f1aa97() А> ntdll.dll!0000000077ef30a5() А> kernel32.dll!0000000077d59620()
Так а что из вышего кода вызывает это?
Или может все таки не все собрано в x64 или цепляются старые 32 битные файлы
Здравствуйте, Аноним, Вы писали:
S>>Поищите для начала, может какая-то из ваших DllMain возвращает 0. А>Да, уже пробовал, все DllMain отрабатывают корректно. Но не срабатывает точка входа в .exe. А>В дебаг режиме в output окне ошибки :
А>First-chance exception at 0x00000001806dfd5e in app.exe: 0xC0000005: Access violation reading location 0x0000000080b876b8. А>First-chance exception at 0x77f52709 in app.exe: 0xC0000005: Access violation. А>Unhandled exception at 0x77f52709 in app.exe: 0xC0000005: Access violation.
А>В CallStack следующее: А> ntdll.dll!0000000077f52709() А> [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] А> ntdll.dll!0000000077f1aa97() А> ntdll.dll!0000000077ef30a5() А> kernel32.dll!0000000077d59620()
Собственно, на стек надо смотреть в момент возникновения первого AV, по адресу 0x00000001806dfd5e. Он, как я понимаю, где-то перехватывается — поменяйте настройки отладчика, чтобы брякался даже на отлавливаемых AV. Так же не помешает указать студии, что недостающие pdb надо подгружать с сайта MS (http://msdl.microsoft.com/download/symbols) — тогда стек будет гораздо информативнее.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.