Ошибка выполнения 52 при запуске 32-разрядного программного обеспечения в 64-разрядной ОС

487
atek

У меня есть программное обеспечение для клавиатуры / набора текста, разработанное в 32-битной среде, и я хочу запустить его на 64-битной Windows 7. В настоящее время я получаю сообщение об ошибке выполнения 52 - Неверное имя файла или номер при каждой попытке запустить программу.

Есть ли загрузка или процесс, который позволяет мне запускать 32-битное программное обеспечение как есть?

-3
Какое программное обеспечение и какая у вас версия ОС? Elie 7 лет назад 2
[XY Проблема] (http://xyproblem.info) Ƭᴇcʜιᴇ007 7 лет назад 1
Это не проблема, которую можно решить, не сообщив нам, с каким программным обеспечением у вас возникла проблема, и какова эта реальная проблема. 32-битное программное обеспечение * будет * отлично работать в 64-битной Windows, так что либо ваше программное обеспечение на самом деле ** 16-битное ** (которое * не поддерживается в 64-битном режиме), либо есть еще одна проблема. Mokubai 7 лет назад 0
@Mokubai, может быть, это правда, что это будет работать или нет, но в моем состоянии это не работает и выдает ошибку Run-time error '52' Неверное имя или номер файла, если он будет работать, то вы уже опубликовали. atek 7 лет назад 0
Отсюда первая строка моего предыдущего комментария и причина ожидания. Вы должны предоставить более подробную информацию, прежде чем кто-либо сможет помочь вам в дальнейшем. Mokubai 7 лет назад 0
Есть много результатов для вашего сообщения об ошибке в Интернете, и ни один из них не имеет ничего общего с 32-разрядным или 64-разрядным. Скорее всего, у вас есть сценарий VBA, который плохо написан или неисправен. Не зная, что вы делаете или какую программу вы используете, мы не можем сказать вам, в чем может быть проблема. Mokubai 7 лет назад 0

1 ответ на вопрос

2
Truepeace

Вы не можете конвертировать ваши 32-битные программы в 64-битные с помощью любого программного обеспечения. Но вам также не нужно конвертировать его, потому что 64-битная архитектура поддерживает все 32-битные программы.

Рассмотрим различия между 32-битными и 64-битными моделями данных. Самым большим отличием между 32-битной и 64-битной средами компиляции является изменение моделей типов данных. Модель типа данных C для 32-разрядных приложений - это модель ILP32, названная так потому, что типы int и long и указатели являются 32-разрядными типами данных. Модель типа данных для 64-битных приложений - это модель данных LP64, названная так потому, что типы long и указатель растут до 64 бит. Остальные целочисленные типы C и типы с плавающей запятой одинаковы в обеих моделях типов данных.

Преобразование 32-битных приложений в 64-битные: проблемы

Основной причиной проблем при преобразовании 32-разрядных приложений в 64-разрядные приложения является изменение размера типа int относительно типов long и pointer. При преобразовании 32-разрядных программ в 64-разрядные программы размер только длинных типов и типов указателей изменяется с 32 до 64 бит; целые числа типа int остаются размером 32 бита. Это может вызвать проблемы с усечением данных при назначении указателей или длинных типов для типов int. Кроме того, проблемы с расширением знака могут возникать при назначении выражений с использованием типов короче, чем размер типа int, беззнаковому длинному или указателю.

Чтобы читать дальше, вот источник. Источник: http://www.oracle.com/technetwork/server-storage/solaris/ilp32tolp64issues-137107.html В
этой статье рассказывается, как выполнить преобразование с изменениями в коде.
Принято с: https://www.quora.com / Как-Do-I-новообращенный-а-32-разрядное программное обеспечение в-а-64-разрядные

Насколько я понимаю, вы должны изменить исходный код в соответствии с вышеуказанными процедурами, изменив типы переменных. Кроме того, я погуглил ошибку, которая у вас есть, может быть не связана с конверсией.