Почему не работает CreateFile в QT и как я могу поставить его как QLocalSocket или аналогичный - PullRequest
0 голосов
/ 28 июня 2019

У меня есть этот код, работающий в моем старом редакторе Borland C ++ для разработчиков:

char address[30];
sprintf(address,"\\\\SERVER_NAME\\EXAMPLE\\ROUTE");
Handle pipe=CreateFile((LPTSTR) &address,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

Он работает в Borland, но когда я помещаю тот же код в Qt, не работает.Я не понимаю, почему труба возвращает INVALID_HANDLE_VALUE в qt.

Моя цель состоит в том, чтобы он работал в qt и использовал класс QLocalSocket или другой, который делает то же самое.

Я пытался:

QLocalSocket * socket = new QLocalSocket(this);
connect(socket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),this, &Conexion::displayError);
socket->connectToServer("\\\\SERVER_NAME\\EXAMPLE\\ROUTE");

Но возвращается: QLocalSocket :: ServerNotFoundError

Большое спасибо, Роберто

1 Ответ

1 голос
/ 28 июня 2019

Нет очевидной причины, по которой ваш первый пример кода должен работать с Borland, а не с Qt, поскольку это чистый код Win32.

Если вы хотите выяснить, почему он не работает, вам нужно позвонить GetLastError() сразу после CreateFile() не удается получить полезную информацию из Windows.

Для QLocalSocket необходимо иметь QLocalServer прослушивания , прежде чем пытаться соединиться с QLocalSocket.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...