2008-12-01 3 views
3

У нас есть 32-разрядное приложение, которое запускает другие 32-разрядные приложения во время его процесса. Приложение работает отлично на других 64-битных платформах, но на Windows Server 2003 64-разрядной, мы получаем ошибку, пытаясь запустить приложения:Почему Ошибка CreateProcess в 64-разрядной версии Windows Server 2003?

error 193 (not a valid 32 bit application) 

Мы можем вручную запускать эти приложения на этой системе без каких-либо проблем.

Я думал, что нашел проблему с this article, но у нашего клиента уже есть этот патч на его системе, и ошибка все еще происходит.

Если кто-то еще столкнулся с чем-то подобным или кто-нибудь знает, как это решить, мы будем признательны!

Спасибо! François Côté

+0

Можете ли вы опубликовать свой звонок? Просто измените любую конфиденциальную информацию, было бы полезно, если бы мы знали, какие параметры вы передаете. – Kiril

ответ

0

Вы уверены, что запущенные приложения скомпилированы для 32-разрядных? Когда вы запускаете каждое из приложений напрямую, убедитесь, что они работают в WOW64. Если это не так, то Windows запускает их как 64-разрядные приложения, что может вызвать проблему, которую вы видите.

+0

Спасибо Педро за ваше время ... Я знаю, что приложения 32 бит, потому что я их скомпилировал. Они корректно работают под управлением wow64 в нашей лаборатории, я проверю следующий раз, когда подключу систему клиента. – FrankTKO

1

IIRC, вы можете получить этот код ошибки, даже если приложение действительно является допустимым 32-разрядным .exe для множества других причин, таких как проблема зависимости dll. Или, если загрузчик Windows путают 64-разрядные DLL в пути с тем же именем, что и 32-разрядная dll.

1

Возможно, вам понадобится выполнить профиль времени выполнения с помощью зависимого ходока, используя опцию «автоматически открывать и профилировать дочерние процессы». Это даст вам представление о том, как далеко он продвигается и какие зависимости он разрешает во время выполнения.