Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT 4.6] Проблема в QTCreator 
V
    Опции темы
Moby
Дата 3.6.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



До этого код был написан в MVS, программа запускается без ошибок.

Задача - послать по COM порту команды. Делаю это через WriteFile.

В общем все работает и посылается. Теперь ComPort.h и ComPort.cpp сую в QTCreator и он ругается на эти две строчки.


Код

TCHAR *pcCommPort = TEXT("COM1");  

error: cannot convert 'const CHAR*' to 'TCHAR*' in initialization

и на эту
Код

SecureZeroMemory(&dcb, sizeof(DCB));

error: 'SecureZeroMemory' was not declared in this scope

В чем ошибка то, как такое может быть, что бы в Студии все было нормально а тут ошибки?

На сколько я понимаю QTCreator использует, отличный от Студии, компилятор MinGW. Может дело в этом, но тогда как быть?

Это сообщение отредактировал(а) Moby - 3.6.2010, 13:56
PM MAIL ICQ   Вверх
kuzulis
Дата 3.6.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Цитата

В общем все работает и посылается. Теперь ComPort.h и ComPort.cpp сую в QTCreator и он ругается на эти две строчки.
....
...
В чем ошибка то, как такое может быть, что бы в Студии все было нормально а тут ошибки?

На сколько я понимаю QTCreator использует, отличный от Студии, компилятор MinGW. Может дело в этом, но тогда как быть?


QtCreator может использовать любой компилятор. 

Но если используешь MinGW, то:

[quote error: cannot convert 'const CHAR*' to 'TCHAR*' in initialization[/quote]
выходы :
1. Использовать ANSII функции из Win32API и не использовать типы данных типа  TCHAR  и т.п.
2. Посмотреть как "оборачивается" использование TCHAR и т.п. в исходниках самой Qt. (см. макрос QT_WA)

Цитата

error: 'SecureZeroMemory' was not declared in this scope


в хейдерах MinGW нет прототипа этой ф-ции.
выходы:
1. Заменить ее на ZeroMemory() или memset()
2. Подключить виндовую dll-ку в которой хранится ф-я SecureZeroMemory()

Добавлено через 4 минуты и 38 секунд
и раз используешь Qt - то грех не воспользоваться готовыми библиотеками для работы с последовательными портами:
QextSerialPort
или
QSerialDevice

ЗЫ: кстати можешь посмотреть как ЭТО сделано в них. 
PM MAIL   Вверх
Moby
Дата 3.6.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



Спасибо, все исправил. Просто надо было быстро реализовать послыку команд и первое на что наткнулся был способ через WriteFile.
PM MAIL ICQ   Вверх
djamshud
Дата 3.6.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



1.
Код

TCHAR const*pcCommPort = TEXT("COM1");


2.
Код

memset(&dcb,0,sizeof(DCB));



--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.