我最近尝试使用蓝牙usb加密狗访问串行通信。 我使用下面的C代码,并继续得到错误5,这是“访问被拒绝”。我是系统的管理员(这似乎是论坛上这个问题的常见解决方案),没有其他应用程序访问我正在使用的同一个端口(也是另一种常见的解决方案)。我正在运行Windows Vista Home Basic 32位系统。我想知道是否有人有这方面的解决方案 我的C代码是:
HANDLE hComm;
hComm = CreateFile(_T(“\\。\ COM3”), GENERIC_READ | GENERIC_WRITE, 0, 空值, OPEN_EXISTING, 0, NULL);
if (hComm == INVALID_HANDLE_VALUE)
printf("Error number: %ld\n", GetLastError());
else
printf("success\n");
答案 0 :(得分:4)
我不知道这是不是你的问题,但我怀疑你需要逃避路径中的反斜杠,如下所示:"\\\\.\\COM3"
答案 1 :(得分:1)
看起来你必须再次逃避反斜杠。您还可以使用对象查看器(例如WinObj(http://technet.microsoft.com/en-us/sysinternals/bb896657.aspx)验证系统中是否存在您要定位的COM端口,但我不知道WinObj是否在Vista上运行。
答案 2 :(得分:0)
根据我的经验,不需要反斜杠
hComm = CreateFile( _T("COM3"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
答案 3 :(得分:0)
感谢您的提示,但事实证明蓝牙密码未正确设置,因此它拒绝访问串口。
答案 4 :(得分:0)
只需在代码中用\。\ COM#替换COM#,
hComm = CreateFile("\\\\.\\COM15",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);