gpt4 book ai didi

c++ - Win32 编译器错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:04:42 34 4
gpt4 key购买 nike

我设法从网上获得了一个代码,用于 PC 通过 RS-232 与机器通信。我在 VS2010 中使用 Win32 控制台应用程序。我想运行它并查看结果。但是我有一些我无法纠正的错误。

代码如下:

    // HTHH.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"

HANDLE hSerial;

int _tmain(int argc, _TCHAR* argv[])
{
hSerial = CreateFile("COM4",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if (hSerial == INVALID_HANDLE_VALUE)
{
if(GetLastError()==ERROR_FILE_NOT_FOUND)
{
}

}

DCB dcbSerialParams = {0};

dcbSerial.DCBlength=sizeof(dcbSerialParams);

if (!GetCommState(hSerial, &dcbSerialParams))
{
}
dcbSerialParams.BaudRate=CBR_9600;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;

if(!SetCommState(hSerial, &dcbSerialParam))
{
}
COMMTIMEOUTS timeouts={0};

timeouts.ReadIntervalTimeout=50;
timeouts.ReadTotalTimeoutConstant=50;
timeouts.ReadTotalTimeoutMultiplier=10;
timeouts.WriteTotalTimeoutConstant=50;
timeouts.WriteTotalTimeoutMultiplier=10;

if(!SetCommTimeouts(hSerial, &timeouts))
{
}

char szbuff[n+1] = {0};
DWORD dwBytesRead = 0;

if(!ReadFile(hSerial, szbuff, n, &dwBytesRead, NULL))
{

CloseHandle(hSerial);

return 0;
}

错误如下:--

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(17): error C2664: 'CreateFileW' : 无法从 'const char [5]' 转换参数 1到'LPCWSTR'

1> 指向的类型是不相关的;转换需要reinterpret_cast,C风格的转换或函数风格的转换

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(28): error C2065: 'dcbSerial' : 未声明的标识符

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(28): error C2228: '.DCBlength' 的左边必须有类/结构/union

1>类型是''未知类型''

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(38): error C2065: 'dcbSerialParam' : 未声明的标识符

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(53): error C2065: 'n': 未声明的标识符

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(56): error C2065: 'n': 未声明的标识符

1>c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(64): fatal error C1075: 在左大括号 '{' 之前找到文件结尾在 'c:\users\singanathan\documents\visual studio 2010\projects\hthh\hthh\hthh.cpp(10)' 匹配========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

抱歉,太长了。感谢您的建议。

谢谢

最佳答案

您正在编译目标 UNICODE,因此 CreateFile 映射到需要宽字符数组的 CreateFileWwchar_t* .但是 "COM4" 是一个 char 文字。将其更改为 L"COM4"

编译器告诉您 dcbSerial 未声明。这是正确的。 dcbSerialParam 也一样。您声明的变量名为 dcbSerialParams

而且你根本没有声明n

关于c++ - Win32 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591042/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com