| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Проблемы с запуском 32бит exe в WinSrv 2008 R2 |
| Автор: kami 23.12.2013, 22:56 | ||
| Здравствуйте, уважаемые! Есть проблема - периодически (непонятно почему) 32 битный экзешник пытается подхватить 64-битные длл со всеми вытекающими последствиями типа AppCrash. Первый раз с таким столкнулся, просьба не пинать, возможно вопрос даже не сюда, а в форум по Windows. В качестве примера (скопирована часть данных из журнала событий):
А, например, сейчас приложение стартовало нормально, в ProcessExplorer наблюдаю подключенную длл: C:\Windows\SysWOW64\rtutils.dll Приложение своё, 32битное. "Ручками" ничего из этой библиотеки не импортирую, но подозреваю, что этим занимается IWebBrowser2 (вообще не нашел у себя в D2010, в моем коде и в сторонних сырцах упоминания rtlutils). Ось: Win Server 2008 R2 Ent. x64 SP1 IE: v10 Сами dll (что 32, что 64 бит) "подлинные", ProcessExplorer говорит "Verified". Проблема с этой dll выскакивает чаще всего. Пару дней назад вываливалось еще где-то на msxml6 (кажется), но сейчас уже не уверен в этом. Собственно - не знаю даже, с какой стороны подступиться к этому. Подскажите что-нибудь, а? |
| Автор: Delvish 24.12.2013, 16:06 |
| День добрый! Смею предположить, что не работает механизм перенаправления WOW64 http://support.microsoft.com/kb/971163/ru |
| Автор: Delvish 24.12.2013, 22:11 |
| В самою суть работы ядра х64 я не вдавался, но если грубо, то х32 приложения в ОС х64 выполняются не нативно, а в неком эмуляторе, т.е. существует прослойка, подключающая необходимые х32 библиотеки для обратной совместимости приложений (эдакий DosBox для 16-битных приложений). Т.о. у Вас происходит ситуация, когда один из механизмов перенаправления дает сбой и ОС считает что приложение не требует запуска эмуляторной прослойки. Более подробно (хотя отвлеченно немного от темы) по ссылке http://rakafon.blogspot.ru/2009/04/32-bit-dll-64-bit.html Исправление беды кроется в каком-то из KB от Microsoft. Точнее подсказать, увы, не могу. |
| Автор: kami 25.12.2013, 13:31 | ||
Да, я понимаю, что все дело в подсистеме WOW64, но мне от этого не легче. Пересобрать приложение под х64 не могу, т.к. D2010. В сети нашел еще несколько жалоб на краши, связанные с этой dll именно на этой оси, но однозначного решения в прочитанных топиках не было, только в одном проскользнула рекомендация внести в исключения DEP. Проблему обошли - поставили приложение на комп с Win7 |