Чтобы начать, я бы предложил проверить, есть ли проблема между вашим приложением и его зависимостями, используя зависимый ходок
У меня есть клиент / серверное приложение, которое я разрабатывал на одном ПК. Теперь ему нужны два последовательных порта, поэтому я позаимствовал ПК у друга.
Когда я создаю свое приложение и пытаюсь запустить или отладить его (будь то в Delphi IDE или из диспетчера файлов Windows), это приводит к ошибке «PATH».
Googling не много поднимает, но, по-видимому, указывает, что это не что-то особенное Delphi и происходит с другими приложениями. Кажется, это вызвано вызовом 32-битной DLL из 64-битного приложения или наоборот.
Может ли кто-нибудь дать мне подсказку о том, как отслеживать это?
Чтобы начать, я бы предложил проверить, есть ли проблема между вашим приложением и его зависимостями, используя зависимый ходок
Невозможно разрешить зависимость времени загрузки. Самый простой способ отладить это - использовать Dependency Walker . Используйте параметр «Профиль» для получения результатов диагностики процесса загрузки. Это определит точку отказа и поможет вам найти решение.
Наиболее распространенной причиной этой ошибки является попытка загрузить 64-битную DLL в 32-битный процесс или наоборот.
Это недостающая dll. Возможно, ваша DLL, которая работает с COM-портами, имеет нерешённую зависимость от dll. Вы можете использовать зависимый ходок и отладчик окон. Например, проверьте всю библиотеку mfc. Кроме того, вы можете использовать nrCommlib - это отличные компоненты для работы с COM-портами.
Я попробовал все, что указано здесь, и нашел еще один ответ. Мне пришлось скомпилировать мое приложение с 32-разрядными DLL. Я построил библиотеки как в 32-битных, так и в 64-битных, но имел свой PATH
набор в 64-разрядные библиотеки. После того, как я перекомпилировал свое приложение (с рядом изменений в моем коде), я получил эту страшную ошибку и боролся в течение двух дней. Наконец, попробовав несколько других вещей, я поменял мой, A±
чтобы иметь 32-разрядные DLL перед 64-разрядными DLL (у них одинаковые имена). И это сработало. Я просто добавляю его здесь для полноты.
В более ранних ответах упоминалось, что использование зависимого ходока - это путь, в моем случае (мое приложение продолжает сбой с кодом ошибки), ходок зависимостей показал несколько dll, которые НЕ актуальны!
Наконец выяснилось, что я могу выполнить профилирование, перейдя в меню «Профиль», и он запустит приложение и остановится на точной DLL, что вызывает проблему! Я узнал, что 32-битная dll была выбрана из-за пути и исправлена.