打开COM端口的问题

时间:2014-06-27 11:01:21

标签: c++ bluetooth port serial-communication

为了从蓝牙设备(Disto)读取数据,设备通过使用配对代码与PC配对,然后使用以下代码打开特定的COM端口:

Port.Format(Str("\\\\.\\COM%d"),m_DistoSerialPort);
CreateFile(Port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

它在每个版本的Windows和所有类型的设备(Disto)中都没有问题。只有在Windows 8(和8.1)中,当涉及到这一行时,屏幕右上角会弹出一条消息,说“添加设备。点击设置你的Disto xxxx”然后它无法连接并且代码返回“E_ACCESSDENIED一般访问被拒绝错误”。

此外,再次执行此方法时,“允许设备连接”(在任务栏上的蓝牙图标中)启用。虽然在Windows 8中点击这个没有帮助,但在Windows 7中它再次请求对代码并且CreateFile方法正常工作。

这是否意味着设备虽然已配对但未正确配对?打开端口或建立连接是一个问题吗?

有谁知道这里出了什么问题?

感谢。

修改 即使我删除了GENERIC_READ或GENERIC_WRITE访问,它也会失败。

0 个答案:

没有答案