qt - 为什么 QT 中的 CreateFile 不起作用,我怎样才能把它作为 QLocalSocket 或类似的
问题描述
我在我的旧开发人员 c++ borland 编辑器中运行了这段代码:
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 中时,它不起作用。我不明白为什么,管道在 qt 中返回 INVALID_HANDLE_VALUE。
我的目标是它可以在 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
非常感谢你,罗伯托
解决方案
没有明显的理由您的第一个代码示例应该使用 Borland 而不是 Qt,因为这是纯 Win32 代码。
如果您想找出它为什么不起作用,您必须在无法从 Windows 检索有用信息GetLastError()
后立即调用。CreateFile()
因为QLocalSocket
,您需要在尝试连接之前进行QLocalServer
聆听QLocalSocket
。
推荐阅读
- javascript - Promise .catch 块中传递给函数的内容是什么?
- python - 我是否在 pytorch 中使用多项式回归?
- python - 将 udf 应用于多个列并使用 numpy 操作
- vue.js - 为什么 Nuxt Js 商店与 vue.js 不一样?
- c# - 值相同时不调用 C# wpf INotifyChanged
- ios - 如何使用 ionic3 从应用商店获取 iOS 部署的版本号
- javascript - 如何在 jquery 中访问 .env 文件?
- var - 正交脉冲响应的解释
- javascript - 读取 json 对象的属性时出现问题
- json - 如何将 JSON 数据转换为对象以便稍后将其用于表中?