Error: el argumento de tipo "cons char *" es incompatible con los parámetros de tipo "LPCWSTR" [cerrado]

-3

Estoy escribiendo un código en Visual C ++ para acceder al puerto serie de una computadora.

El código se da a continuación: -

#include<windows.h>
#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("COM1", GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

En el código anterior, aparece un error en "" COM1 "" en la última línea del código anterior.

El error se da a continuación: -

Error: argument of type "cons char *" is incompatible with parameters of type "LPCWSTR"

Quiero saber por qué recibo este error y a quién resolverlo.

    
pregunta Saad Rafey

1 respuesta

2

Use CreateFileA para usar la versión ANSI (cadena ASCII) de la llamada a la API en lugar de Unicode o, alternativamente, y probablemente la forma más portátil es usar la siguiente macro para cambiar el tipo de cadena, esto funcionará independientemente de si tener un proyecto dirigido a Unicode o no:

HANDLE hSerial= CreateFile(_T("COM1"), GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

El siguiente resumen de programación de Unicode de Microsoft es bastante breve y vale la pena leerlo:

enlace

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas