2017-09-04 7 views
0

Je suis en train d'écrire un programme C++ pour lire à partir d'un port série (dans mon cas COM6). Pour ouvrir le port COM. J'ai toujours trouvé ce code dans Internet:C++ Lecture à partir d'un port série avec CreateFile

HANDLE serialHandle; 

serialHandle = CreateFile(L"COM6", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 

Mon problème est que je reçois les erreurs suivantes:

  • 'POIGNÉE': identifiant non trouvé
  • 'CreateFile': Identifiant introuvable
  • 'GENERIC_READ': identificateur non déclaré
  • 'INVALID_HANDLE_VALUE': identificateur non déclaré
  • ...

Mon code:

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

Qu'est-ce que je fais mal?

+0

Impossible de reproduire. Quel IDE/compilateur utilisez-vous? Avez-vous le SDK Windows approprié installé? – Ron

+0

J'utilise l'IDE/Compilateur Visual Studio 2017 par défaut. Je n'ai rien changé dans les paramètres. – User987123

+1

@ User987123 Si vous installez VS'17 sans ajuster les paramètres, le SDK Windows ne s'installera PAS. Veuillez ajuster vos paramètres et réessayer. – Blacktempel

Répondre

1

Si vous utilisez les en-têtes précompilés, quoi que ce soit jusqu'à et y compris la ligne #include "stdafx.h" est censé être déjà partie de l'en-tête précompilés. Et ainsi sera ignoré par le compilateur.

Assurez-vous donc que #include "stdafx.h" est toujours le d'abord#include.

+0

Merci beaucoup. Maintenant ça marche :) – User987123

2

Si vous installez VS'17 sans modifier les paramètres, le SDK Windows installera pas.

S'il vous plaît vérifier à nouveau votre installation VS'17 et installer SDK Windows approprié au niveau.

+0

https://stackoverflow.com/questions/44325182/cant-change-windows-sdk-version-in-visual-studio-c-project A une petite capture d'écran de certains SDK Windows. – Blacktempel

+0

J'utilise Windows7 mais dans le programme d'installation de Visual Studio, je ne peux installer que des SDK pour Windows 10. Que dois-je faire maintenant? – User987123

+0

@ User987123 Installez les derniers 10 ou 8.1. Actuellement incapable de dire exactement lequel vous avez besoin. Il fonctionnera sur Windows 7. – Blacktempel