Проблема сборки приложения под x64
От: Аноним  
Дата: 21.08.07 14:23
Оценка:
Народ, помогите плз решить проблему.
Есть приложение, состоящее из 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 запускается без проблем.
Re: Проблема сборки приложения под x64
От: Sergey Россия  
Дата: 21.08.07 15:44
Оценка:
> Есть приложение, состоящее из 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()
Re[3]: Проблема сборки приложения под x64
От: ioni Россия  
Дата: 21.08.07 17:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 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 битные файлы
Re[3]: Проблема сборки приложения под x64
От: Sergey Россия  
Дата: 21.08.07 18:38
Оценка:
Здравствуйте, Аноним, Вы писали:

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 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.