【发布时间】:2018-02-12 08:16:00
【问题描述】:
我正在编写一个 C++ 程序以从串行端口(在我的情况下为 COM6)读取。打开 COM 端口。我总是在网上找到这段代码:
HANDLE serialHandle;
serialHandle = CreateFile(L"COM6", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
我的问题是我收到以下错误:
- 'HANDLE':找不到标识符
- 'CreateFile':找不到标识符
- 'GENERIC_READ':未声明的标识符
- 'INVALID_HANDLE_VALUE':未声明的标识符
- ...
我的代码:
#include <windows.h>
#include "stdafx.h"
#include <iostream>
#include <string>
#include <tchar.h>
#include <stdio.h>
#include <strsafe.h>
using namespace std;
int main()
{
/*int comPortNmr = 6, speed = 115200;
cout << "Serial Line: > ";
cin >> comPortNmr;
cout << endl;
cout << "Speed: > ";
cin >> speed;
cout << endl; */
HANDLE serialHandle;
// Open serial port
serialHandle = CreateFile(L"COM6", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (serialHandle == INVALID_HANDLE_VALUE)
{
cout << "Error." << endl;
}
else
{
cout << "Opend." << endl;
}
return 0;
}
我做错了什么?
【问题讨论】:
-
无法重现。您使用的是什么 IDE/编译器?您是否安装了相应的 Windows SDK?
-
我正在使用默认的 Visual Studio 2017 IDE / 编译器。我没有更改设置中的任何内容。
-
@User987123 如果您在不调整设置的情况下安装 VS'17,Windows SDK 将不会安装。请调整您的设置,然后重试。
标签: c++ sdk serial-port visual-studio-2017 createfile