Странное поведение программы, Вылетает программа |
Здравствуйте, гость ( Вход | Регистрация )
Странное поведение программы, Вылетает программа |
Гость_Гость_berserk_*_* |
7.7.2009, 21:52
Сообщение
#1
|
Гости |
Привет всем!
Пишу программу для работы с последовательным портом. в программе 3 класса. Первый работает непосредственно с портом, второй - форма, 3 ий для разбора полученной инфы. В программе есть платформозависимый код (в классе работы с портом) Первый прикол случился когда я в заголовочном файле объявил переменные в определённой последовательности))) притом в линуксе всё работало, а в винде на экран пёрли смайлики))). Долго ломал голову, поменял местами 2 объявления переменных и всё заработало. так работало только в линуксе, в винде были смайлики:
а так работало везде
buff переменная в которую пихались байты с порта, а затем выводились на экран, так вот если по первому коду после объявления buff объявлял что нибудь ещё, то в винде было смайлы))) второе. Сегодня на работе добавил 3 класс в котором разбирается строка прочитанная с порта.
В винде всё компилируется и работает, а в линуксе программа вылетает при чтении данных с порта. При этом если 3 класс не наследует QObject или его потомков то всё работает (ну кроме сигналов и слотов которые нужны) подозреваю что косяк с #ifdef Q_WS_WIN/#ifdef Q_WS_X11 кто что понял с моих слов помогите плиз))) |
|
|
Litkevich Yuriy |
7.7.2009, 21:59
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
BRE |
7.7.2009, 22:01
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Ты бы показал как с buff работаешь.
Что-то мне подсказывает, что ты память затираешь. |
|
|
Litkevich Yuriy |
7.7.2009, 22:02
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
7.7.2009, 23:55
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Первый прикол случился когда я в заголовочном файле объявил переменные в определённой последовательности))) притом в линуксе всё работало, а в винде на экран пёрли смайлики))). Дай угадаю. В винде используется вижуал, в линуксе gcc?
Тут я бы еще понял, если бы переменная i начиналась в 1-цы. При твоем раскладе цикл выполнится 11 раз, если в строке 10 символов. Сообщение отредактировал SABROG - 7.7.2009, 23:59 |
|
|
berserk |
8.7.2009, 7:30
Сообщение
#6
|
Студент Группа: Участник Сообщений: 44 Регистрация: 9.2.2009 Пользователь №: 540 Спасибо сказали: 0 раз(а) Репутация: 0 |
притом в линуксе всё работало, а в винде на экран пёрли смайлики))). скорее всего дело в кодировке.а как кодировка может повлиять на порядок определения переменных? Ты бы показал как с buff работаешь. Что-то мне подсказывает, что ты память затираешь.
Первый прикол случился когда я в заголовочном файле объявил переменные в определённой последовательности))) притом в линуксе всё работало, а в винде на экран пёрли смайлики))). Дай угадаю. В винде используется вижуал, в линуксе gcc?
Тут я бы еще понял, если бы переменная i начиналась в 1-цы. При твоем раскладе цикл выполнится 11 раз, если в строке 10 символов. в винде mingw с циклом согласен, день был тяжёлый... |
|
|
Гость_Гость_kuzulis_*_* |
8.7.2009, 7:44
Сообщение
#7
|
Гости |
Цитата Первый прикол случился когда я в заголовочном файле объявил переменные в определённой последовательности))) притом в линуксе всё работало, а в винде на экран пёрли смайлики))). а как вывод происходил? код в студию! |
|
|
BRE |
8.7.2009, 7:52
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
А куда buff указывает? Где память для него выделяется?
Код
|
|
|
Litkevich Yuriy |
8.7.2009, 10:39
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kuzulis |
8.7.2009, 11:25
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
а не проще ли
вместо:
написать тогда уж:
и читать :
?? раз уж чтение по одному байту идет... ну и в нагрузку переписать чуть для юникса код и вообще использовать уже готовые для этого библиотеки либо QextSerialPort либо QSerialDevice зачем "лисапетить" ? |
|
|
Текстовая версия | Сейчас: 27.12.2024, 5:54 |