我正在用Visual C ++编写代码来访问串口。
代码如下: -
#include<stdio.h>
#include<cstring>
#include<string.h>
#include<conio.h>
#include<iostream>
using namespace std;
//#include "stdafx.h"
#ifndef __CAPSTONE_CROSS_SERIAL_PORT__
#define __CAPSTONE_CROSS_SERIAL_PORT__
HANDLE hSerial= CreateFile(L"COM1", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if(hSerial==INVALID_HANDLE_VALUE)
{
if(GetLastError()==ERROR_FILE_NOT_FOUND){
//serial port does not exist. Inform user.
}
//some other error occurred. Inform user.
}
在上面的代码中,我在行
中的如果时收到错误if(hserial==INVALID_HANDLE_VALUE)
错误如下: -
Error:expected a declaration
我在 if 语句
结尾处的两个大括号} 时遇到同样的错误我想知道为什么我会收到此错误以及如何解决此错误
答案 0 :(得分:7)
我想你可能想看this。问题是您尝试在命名空间范围(全局命名空间)中使用if
语句,其中只有声明有效。
您需要将逻辑包装在某种函数中。
void mySuperCoolFunction()
{
if(hSerial==INVALID_HANDLE_VALUE)
{
if(GetLastError()==ERROR_FILE_NOT_FOUND)
{
//serial port does not exist. Inform user.
}
//some other error occurred. Inform user.
}
}