Russian Qt Forum

Qt => Вопросы новичков => Тема начата: oakim от Ноябрь 09, 2015, 15:47



Название: не работает UDP socket
Отправлено: oakim от Ноябрь 09, 2015, 15:47
Здравствуйте!  Помогите новичку! Создал приложение с udp клиентом. Все работает. Потом решил перенести клиент в отдельный обьект и поместить его в поток.
QT не хочет создавать мой обьект, выдает ошибку линковщика -
  LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress


Если обьект не создан, а просто объявлен  ошибок нет.
В про файле network  добавлен. Компилятор MSVC.

Из объекта временно убрал все чтобы, самому разобраться, все равно выдает ошибку.
Заголовочный
Код:
#ifndef TEST_H
#define TEST_H

#include <QObject>
#include <QtNetwork\QUdpSocket>
#define SERVERADDR "192.168.0.2"
#define PORTADDR 49152

class test:public QObject
{
     Q_OBJECT
public:   
    explicit test(QObject *parent = 0);
private:
    QUdpSocket *socket;
    QHostAddress qha;
};

#endif // TEST_H

cpp
Код:
#include "test.h"

test::test(QObject *parent):QObject(parent)
{
    this->qha =  QHostAddress(SERVERADDR);
    socket = new QUdpSocket(this);
    socket->bind(this->qha.AnyIPv4, PORTADDR);
}

Форма пока пустая.




Название: Re: не работает UDP socket
Отправлено: torwig от Ноябрь 10, 2015, 09:39
А #include <QtNetwork/QHostAddress> где?


Название: Re: не работает UDP socket
Отправлено: oakim от Ноябрь 10, 2015, 11:16
QHostAddress есть внутри Udpsocket. На всякий случай добавил - не помогает.


Название: Re: не работает UDP socket
Отправлено: Bepec от Ноябрь 10, 2015, 17:23
Clean solution
Build solution
При неработоспособности проверить по 3 раза правильность написания модуля в pro файле, или лучше загрузить полный код в компилябельном проекте нам.


Название: Re: не работает UDP socket
Отправлено: oakim от Ноябрь 11, 2015, 10:56
Очищать пробовал. У меня знакомый собирал мой проект и скидывал мне свой похожий - все работает. Скорее всего что-то не так с настрокой Creator, переменными средами или чем-то таким. Подскажите где копать, что может вызвать тот факт, что периодически перестают видеться добавленные файлы библиотек.


Название: Re: не работает UDP socket
Отправлено: PimenS от Ноябрь 11, 2015, 11:16
Что вы пытаетесь передать в bind?

Цитировать
this->qha.AnyIPv4

Там вроде нужно QHostAddress передавать.


Название: Re: не работает UDP socket
Отправлено: oakim от Ноябрь 11, 2015, 13:13
 Реализацию test с передачей адреса можно вообще убрать и ошибка остается той же - линковщик не находит  QHostAddress.


Название: Re: не работает UDP socket
Отправлено: Bepec от Ноябрь 11, 2015, 20:08
лучше загрузить полный код в компилябельном проекте нам.


Название: Re: не работает UDP socket
Отправлено: oakim от Ноябрь 12, 2015, 09:37
Код во вложении.


Название: Re: не работает UDP socket
Отправлено: oakim от Ноябрь 12, 2015, 16:55
Проблема решилась созданием переменной среды QTdir с правильным путем и последующим пересозданием проектов. Спасибо всем откликнувшимся.