Russian Qt Forum
Ноябрь 23, 2024, 10:40
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
[РЕШЕНО] DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] DLL + QTcpSocket вызов из не QT приложения (обработка сообщений) (Прочитано 4132 раз)
mos4ever
Гость
[РЕШЕНО] DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
:
Июнь 18, 2013, 11:18 »
Здравствуйте! Вопрос уже поднимался, но рабочего варианта не нашел.
Есть
1. Qt прога:
connect(sok, SIGNAL(readyRead()), SLOT(onReadyRead()));
2. DLL на Qt:
EXPORT void sokConnect()
{
sok = new QTcpSocket();
sok->connectToHost(addr, 5588);
}
EXPORT void sendCmd()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out << (quint16)0 << 47;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
sok->write(block);
}
3. вызов функций производится из приложения не Qt, в итоге слот onReadyRead() не срабатывает, если
EXPORT void sokConnect()
{
int argc = 0;
App = new QCoreApplication(argc, 0);
sok = new QTcpSocket();
sok->connectToHost(addr, 5588);
sendCmd();
App->exec();
}
то команда доходит и слот вызывается. Пробовал в поток запихивать App->exec(); но тогда при вызове sendCmd(); ничего не происходит
Может у кого есть рабочий вариант? Заранее благодарен!
«
Последнее редактирование: Июнь 18, 2013, 12:09 от mos4ever
»
Записан
mutineer
Гость
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #1 :
Июнь 18, 2013, 11:22 »
Какие-то обрывки непонятные
Записан
mos4ever
Гость
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #2 :
Июнь 18, 2013, 11:25 »
Цитата: mutineer от Июнь 18, 2013, 11:22
Какие-то обрывки непонятные
А что непонятное, я напишу еще объяснение...
Записан
mutineer
Гость
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #3 :
Июнь 18, 2013, 11:33 »
Не очень понятно что откуда вызывается и где не работает
Записан
mos4ever
Гость
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #4 :
Июнь 18, 2013, 11:42 »
В Qt приложении создан QTcpServer
DLL с функциями отправки команд серверу
Вызывает эти функции из DLL приложение не QT, т.к. QTcpServer работает с сигналом
connect(server, SIGNAL(readyRead()), SLOT(onReadyRead()));
в DLL и стороннем приложении система сигналов и слотов не поддерживается, поэтому при вызове функции sendCmd сигнал до сервера не доходит, за это отвечает QCoreApplication::exec(); но мне зацикливать функцию нельзя, т.к. команда для отправки серверу не одна
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #5 :
Июнь 18, 2013, 11:46 »
Посмотрите на метод waitForBytesWritten
«
Последнее редактирование: Июнь 18, 2013, 11:49 от Old
»
Записан
mos4ever
Гость
Re: DLL + QTcpSocket вызов из не QT приложения (обработка сообщений)
«
Ответ #6 :
Июнь 18, 2013, 12:00 »
СПАСИБО ОГРОМНОЕ - ДВА ДНЯ МУЧАЛСЯ С ПОТОКАМИ!!!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...