作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须将信息从 uController 传输到我的笔记本电脑。当我创建文件时,出现以下错误。我认为如果您看到脚本,排除故障会更容易。
因为它说“LPCWSTR”中的“char [20]”不适合,所以我将其更改如下:
CreateFile((LPCWSTR)name, GENERIC..
现在我可以编译程序,但仍然收到 INVALID_HANDLE_VALUE,并且无法打开端口。
我的串行例程:
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "com_bg.hpp"
char name[20]=""; //between the "" inserting COM"X"
...
do
{
port = CreateFile(name, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (port==INVALID_HANDLE_VALUE)
{
k++;
}
}
while ((k<MAXCREAT) && (port==INVALID_HANDLE_VALUE));
if (k==MAXCREAT)
return(ERR_COM);
...
我的主要看起来像这样:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include "com_bg.hpp"
#include "com._bg.cpp"
#include "tchar.h"
using namespace std;
int _tmain(int argc, _TCHAR *argv[])
{
printf("Hello\n");
getch();
err = openCom(8, 9600, NONE,1,RTSDTRLOW);
if (err != OK)
{
closeCom();
printf("Failed to OpenPort\n");
return 0;
}
…
最佳答案
类型转换不会改变字符串的底层编码。如果您需要为以 char *
字符串表示的文件或设备名称调用 CreateFile
,请显式或通过更改来使用 CreateFileA
您的项目设置为不使用 Unicode。
当然,如果您确实想将 char *
字符串传递给 CreateFile
。更明智的选择是将 name
的类型从 char
更改为 wchar_t
(Windows平台类型为 WCHAR
)。
关于CreateFile(ComX...) 错误 C2664 : 'CreateFileW' :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55855615/
我有一个蓝牙串行端口来与硬件通信。如果硬件没有上电,使用“CreateFile”会使线程阻塞,5-6秒后会报错“The semaphore timeout period has expired”。是否
这个问题已经有答案了: Cast to LPCWSTR? (4 个回答) Win32 Application Programming C++, Error with parameter Type LP
我是一名优秀的程序员,十分优秀!