1. ホーム
  2. visual-c++

[解決済み] エラー: 期待される宣言

2022-02-11 18:02:04

質問

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 文は、宣言だけが有効な名前空間スコープ(グローバル名前空間)で使用されます。

ロジックを何らかの関数でラップする必要があります。

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.
  }
}