PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Программа не работает на других компьютерах


Программа не работает на других компьютерах

Сообщений 1 страница 5 из 5

1

Сабж. На том, где находится сам PureBasic-64  (7, 64 разряда) все работает. На других возникают следующие проблемы:

1. На ХР, пишет, что не 32 разрядное приложение. Не запускается. В опциях компилятора не нашел как изменить.

2. На 7-ке, аналогичной моей такое поведение:
в коде есть проверка на доступность СОМ порта (код взят где-то здесь же, на форуме)

Код:
  If OpenSerialPort(2, Port, 1200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256, 256)
    SetGadgetText(#Text_2, "READY")

При этом любой порт считается доступным (еще раз повторю - на машине с Пуриком все работает)

Как это вылечить? Может какой-то dll не хватает?

0

2

Civil написал(а):

1. На ХР, пишет, что не 32 разрядное приложение. Не запускается.

Правильно. 64 разрядное приложение не будет работать на 32 разрядной системе, т. к. нет совместимости на уровне процессора и т. д.
Не зря же программы существуют в 32 и 64 разрядных версиях.
Нужно установить на x64 систему x86 PB и скомпилировать программу.

Civil написал(а):

При этом любой порт считается доступным

У меня такой код правильно работает.

Код:
If OpenSerialPort(2, "COM 99", 1200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256, 256)
  CloseSerialPort(2)
  MessageRequester("", "Порт доступен")
Else
  MessageRequester("", "Порт не удалось открыть")
EndIf
End

Скомпилированная программа. http://rghost.ru/50362061

0

3

Пётр написал(а):

Нужно установить на x64 систему x86 PB и скомпилировать программу.

Спасибо. Сейчас поставлю.
Поставил. В ХР стало работать нормально. Но не в 7-ке. Может ли быть проблема в том, что это единственная ОС у меня с русским интерфейсом?

Этот пример и у меня нормально работает.
А можно Вас попросить посмотреть код? http://rghost.ru/50362847
Там исходник и тот экзешник, который у меня получается. На качество кода прошу внимания не обращать : )

Отредактировано Civil (22.11.2013 23:44:38)

0

4

Есть сомнение что порт открывается при его выборе в списке.
Давайте это проверим. Запустите программу в IDE. Кликните по строке 12

Код:
If OpenSerialPort(2, Port, 1200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 256, 256)

чтобы на ней оказался текстовый курсор и нажмите на кнопку F9. Строка должна выделится цветом и слева от текста появится маркер. Теперь выберите другой порт в выпадающем списке. Отладчик остановит программу?
Если нет, то в строке 55 замените число 1 на константу #PB_EventType_Change.

+1

5

Пётр написал(а):

в строке 55 замените число 1 на константу #PB_EventType_Change

Да! Спасибо! Это оно.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Программа не работает на других компьютерах