博主初次在发帖,如果有什么写的不好的地方请多多见谅!
对于一般新手而言,直接使用CreateFile函数时,通常会出现以下错误:
函数 "char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容
例如:
bool openport(char *portname)//打开串口 { hComm = CreateFile(portname, //串口号 //GENERIC_READ | GENERIC_WRITE, //允许读写 0, 0, //通讯设备必须以独占方式打开 0, //无安全属性 OPEN_EXISTING, //通讯设备已存在 //0, //同步I/O FILE_FLAG_OVERLAPPED, //异步I/O 0); //通讯设备不能用模板打开 if (hComm == INVALID_HANDLE_VALUE) { CloseHandle(hComm); return FALSE; } else return TRUE; }
使用VS2015编译时就会提示实参“portname”出现以上错误
如果此时直接使用关键词“L”或者强制类型转换把原为“char *”的实参转换为“LPCWSTR”,那么悲剧就发生了,无论如何都打不开串口,起初我还一直以为是串口的文件名不正确或驱动有问题。到后来才想到这个参数类型,然后去寻找度娘的帮助,按照以下这个百度h 经验ttp://jingyan.baidu.com/article/7c6fb428629c3a80652c907e.html 操作,困扰了博主许久的问题解决了!虽然不明白是什么原因...如果哪位大神路过请给小弟指点指点
转载请注明原文地址: https://ju.6miu.com/read-13920.html