Fout: had een declaratie verwacht

Ik schrijf een code in Visual C++ om toegang te krijgen tot de seriële poort.

Code wordt hieronder gegeven:-

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

In de bovenstaande code krijg ik een foutmelding bij ifin de regel

if(hserial==INVALID_HANDLE_VALUE)

Fout wordt hieronder gegeven:-

Error:expected a declaration

Ik krijg dezelfde foutmelding bij beide accolades }aan het einde van de if-instructie

Ik wil weten waarom ik deze fout krijg en hoe ik deze kan oplossen


Antwoord 1, autoriteit 100%

Ik denk dat je ditwilt lezen. Het probleem is dat u een if-instructie probeert te gebruiken op naamruimtebereik (algemene naamruimte) waar alleen een declaratie geldig is.

Je moet je logica in een of andere functie verpakken.

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

Other episodes