Ciao a tutti,
Ho realizzato un applicazione con le qt su linux mint 13 a 64bit...e tutto funziona
A questo punto volevo creare una versione per i 32bit, quindi ho istallato su virtualbox mint 14 @32bit
- Installato qt creator
- Aperto il progetto e compilato
risultato: mi da questi errori
'close' was not declared in this scope
'read' was not declared in this scope
'write' was not declared in this scope
Questo il codice incriminato
codice:#ifndef DEVICEMANAGER_H #define DEVICEMANAGER_H #include <QObject> #include <QMessageBox> #include <QString> #include "datamanager.h" class DeviceManager : public QObject{ Q_OBJECT public: explicit DeviceManager(QWidget *parent = 0, DataManager *d = 0){p = parent; d_manager=d;} virtual void openPort(const char *port)=0; ~DeviceManager(){} protected: DataManager *d_manager; QWidget *p; int reading_errors; public slots: virtual void t_readData() = 0; signals: void update(); void error(); }; #endif // DEVICEMANAGER_HDentro openPort() e t_readData() utilizzo close(), read(), write, tipo:codice:#include <stdio.h> #include <fcntl.h> #include <termios.h> #include <errno.h> #include <devicemanager.h> #include <vector> #include <QTime> #include "exceptions.h" class SerialPort : public DeviceManager{ Q_OBJECT public: explicit SerialPort(QWidget *parent = 0, DataManager *dm = 0); void openPort(const char *port); ~SerialPort(); std::vector<int> values; private: int fd; int nBlocks; public slots: void t_readData(); }; #endif // SERIALPORT_H
Qualcuno sa il motivo di questo ?codice:SerialPort::~SerialPort(){ if(this->fd != -1); close(this->fd); } void SerialPort::t_readData(){ int len = 1; uchar byte = 0; int count = 0; ushort iValue =0; uchar *pValue = (uchar*)&iValue; int pIndex = 0; int vIndex = 0; double values[N_PARAMS+1]; double max[N_PARAMS+1]; double min[N_PARAMS+1]; QTime t; if(this->fd == -1) return; tcflush(this->fd, TCIFLUSH); len = write(this->fd, "\xAA", sizeof(char)); .... }

Rispondi quotando
