急啊!!VC使用CreateFile不能打开串口,永远都是返回INVALID_HANDLE_VALUE

xueyumicheng 2012-10-07 04:24:00
HANDLE hcom;

hcom = CreateFile("COM3:",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

if (hcom == INVALID_HANDLE_VALUE)
{
printf("打开串口失败");

}

各位大侠求救啊!!
...全文
559 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

vc6 默认是多字节。
以后(2008)默认是UNICODE 就变成 带W的了
[/Quote]
恩恩~~~
schlafenhamster 2012-10-07
  • 打赏
  • 举报
回复
vc6 默认是多字节。
以后(2008)默认是UNICODE 就变成 带W的了
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

“CreateFile变成了CreateFileW” 那就要:
TEXT("COM3"),
[/Quote]
难道你们用的时候都不是“CreateFile变成了CreateFileW”吗?那你们用的头文件是哪个?还是说你们改了这个编译?
zwfgdlc 2012-10-07
  • 打赏
  • 举报
回复
MSDN看CreateFile这个API的文档.
schlafenhamster 2012-10-07
  • 打赏
  • 举报
回复
“CreateFile变成了CreateFileW” 那就要:
TEXT("COM3"),
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

在"设备管理器"能不能看到COM3口?
[/Quote]
能的,我换COM1口也是可以看到的,而且用串口助手都能打开!
上面那位大侠搞定了~~是文件名问题!不能直接用COM1的
zwfgdlc 2012-10-07
  • 打赏
  • 举报
回复
在"设备管理器"能不能看到COM3口?
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

C/C++ code

hcom = CreateFile(TEXT("\\\\.\\COM3"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);


没理由不行啊,
GetLastError()返回什么?
[/Quote]
可以了~~请问为什么要这么命名呢??为什么网上所有的都是说COM1-COM9都可以直接这么命名呢?而且那个函数的定义也这么说?求大神解释~
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
回复9楼:
返回的是2
zwfgdlc 2012-10-07
  • 打赏
  • 举报
回复

hcom = CreateFile(TEXT("\\\\.\\COM3"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

没理由不行啊,
GetLastError()返回什么?
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
麻烦谁在自己的环境中试试我的代码!看能运行结果?
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
6楼:
结果一样啊~~是不是跟我头文件有关啊~
“#include<windows.h> ”我用的是这个~~
然后我看了一下编译那里,CreateFile变成了CreateFileW,这个有影响吗?
liulin2016 2012-10-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

m_idComDev=CreateFile("COM3", // com1,2
GENERIC_READ|GENERIC_WRITE,
0, // sharemode 0=no share
NULL, // &sa
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NUL……
[/Quote]


http://topic.csdn.net/u/20121007/12/053ab52a-4e2b-40bd-b9bb-339c6cf794ca.html?51198
高手帮忙看个帖子吧,谢谢了啊

schlafenhamster 2012-10-07
  • 打赏
  • 举报
回复
m_idComDev=CreateFile("COM3", // com1,2
GENERIC_READ|GENERIC_WRITE,
0, // sharemode 0=no share
NULL, // &sa
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL); // tempfile
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
还是一样啊~~唉~
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
还是一样啊~~唉~
zwfgdlc 2012-10-07
  • 打赏
  • 举报
回复

hcom = CreateFile("\\\\.\\COM3",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
xueyumicheng 2012-10-07
  • 打赏
  • 举报
回复
补充:COM3口是存在的,用串口助手能正常打开!

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧