| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT 4.6] Проблема в QTCreator |
| Автор: Moby 3.6.2010, 13:56 | ||||
| До этого код был написан в MVS, программа запускается без ошибок. Задача - послать по COM порту команды. Делаю это через WriteFile. В общем все работает и посылается. Теперь ComPort.h и ComPort.cpp сую в QTCreator и он ругается на эти две строчки.
error: cannot convert 'const CHAR*' to 'TCHAR*' in initialization и на эту
error: 'SecureZeroMemory' was not declared in this scope В чем ошибка то, как такое может быть, что бы в Студии все было нормально а тут ошибки? На сколько я понимаю QTCreator использует, отличный от Студии, компилятор MinGW. Может дело в этом, но тогда как быть? |
| Автор: kuzulis 3.6.2010, 15:01 | ||||
QtCreator может использовать любой компилятор. Но если используешь MinGW, то: [quote error: cannot convert 'const CHAR*' to 'TCHAR*' in initialization[/quote] выходы : 1. Использовать ANSII функции из Win32API и не использовать типы данных типа TCHAR и т.п. 2. Посмотреть как "оборачивается" использование TCHAR и т.п. в исходниках самой Qt. (см. макрос QT_WA)
в хейдерах MinGW нет прототипа этой ф-ции. выходы: 1. Заменить ее на ZeroMemory() или memset() 2. Подключить виндовую dll-ку в которой хранится ф-я SecureZeroMemory() Добавлено через 4 минуты и 38 секунд и раз используешь Qt - то грех не воспользоваться готовыми библиотеками для работы с последовательными портами: QextSerialPort или QSerialDevice ЗЫ: кстати можешь посмотреть как ЭТО сделано в них. |
| Автор: Moby 3.6.2010, 15:13 |
| Спасибо, все исправил. Просто надо было быстро реализовать послыку команд и первое на что наткнулся был способ через WriteFile. |
| Автор: djamshud 3.6.2010, 15:14 | ||||
1.
2.
|