Hallo, Ich habe da eine Nette Frage. Ich habe Windows 7 32bit. Ich habe Visual Studio 2012. Ich wollte mal nett Fragen wie die Variablen für das Ansteuern des Serial Com Ports sind. Bei Microsoft hier steht das der Command SerialPort() heisst. https://msdn.microsoft.com/de-de/library/system.io.ports.serialport%28v=vs.110%29.aspx Aber bei mir in Visual Studio wird der nicht erkannt. Brauche ich da jezt ne bestimmte Einstellung oder eine Header datei? Kann mir da jemand Helfen? Vielen Dank. Mit Freundlichen Grüßen.
Heinz schrieb: > Kann mir da jemand Helfen? nein, weil du nicht mal schreibt welche Programmiersprache. Und SerialPort ist kein Kommando oder Befehl sondern eine Klasse.
Hallo, Ich benutze C++. Und wie funktioniert eine klasse kann mir das jemand erklären.
Heinz schrieb: > Hallo, Ich benutze C++. warum liest du denn die Doku für .net? Für C gibt es hier ein Beispiel https://msdn.microsoft.com/en-us/library/windows/desktop/aa363201(v=vs.85).aspx und hier die Referenz https://msdn.microsoft.com/en-us/library/windows/desktop/aa363194(v=vs.85).aspx > Und wie funktioniert eine klasse kann mir das jemand erklären. ja, jedes Buch über objektorientiertes Programmieren.
Vielen Dank Genau das habe ich Gesucht. Mit Freundlichen Grüßen.
Hallo bin jetzt bei der selben Aufgabenstellung. Muss mit VS2017 über RS232 mit einem MC kommunizieren. Bin aber gerade erstmal dabei eine funktionierende Syntax für VS hinzubekommen. Habe mir diese Beispiele von Peter II/ MSDN angeschaut, aber bei mir kommen extrem viele Fehler-Meldungen. Kann mir bitte jemand erklären wie ich mit den Referenzen umgehen muss? Muss ich alle Codes der einzelnen Ref´s extra einfügen bzw einen zusätzlichen Header einbauen? Hoffe, dass ich nicht sagen muss, dass ein absoluter Newbe bin....
Sebastian M. schrieb: > Hoffe, dass ich nicht sagen muss, dass ein absoluter Newbe bin.... welche Fehler kommen denn?
boar, mit so einer schnellen Antwort habe ich nicht gerechnet.. ;) Großteils circa 50% der 62 Fehler, dass Typen(?) DCB HANDLE BOOL , ebenso Befehle wie GENERIC READ/ WRITE, OPEN EXISTING und auch Variablen HCOM FSUCCESS nicht deklarierte Bezeichner sind. Sonst noch, dass einige Bezeichner nciht gefunden wurden sind (circa 40%)
:
Bearbeitet durch User
Sebastian M. schrieb: > Großteils circa 50% der 62 Fehler, dass Typen(?) DCB HANDLE BOOL , > ebenso Befehle wie GENERIC READ/ WRITE, OPEN EXISTING und auch Variablen > HCOM FSUCCESS nicht deklarierte Bezeichner sind. dann fehlt vermutlich einfach
1 | #include <Windows.h> |
Peter II schrieb: > dann fehlt vermutlich einfach > > #include <Windows.h> nee, ist drinne er hatte beim ersten compilieren auch gemeckert, dass ich #include "stdafx.h" einfügen soll. Nach dem einfügen und zweitem compilieren kamen die ganzen Fehlermeldungen. Auch eine Klammer zum Beenden der Main fehlte am Ende des Original-Codes.
Sebastian M. schrieb: > nee, ist drinne und das ist auch wirklich C(++) und nicht CLI ? bitte mal deinen code und die genaue Fehlermeldung posten.
ok, erstmal gegoogled was CLI ist... also der CODE ist aus dem Link weiter oben, den du damals mal gepostet hast, herauskopiert. Da steht ja auch c++ ich habe hier einen kleinen Auszug: void PrintCommState(DCB dcb) { // Print some of the DCB structure values _tprintf(TEXT("\nBaudRate = %d, ByteSize = %d, Parity = %d, StopBits = %d\n"), dcb.BaudRate, dcb.ByteSize, dcb.Parity, dcb.StopBits); } int _tmain(int argc, TCHAR *argv[]) { DCB dcb; HANDLE hCom; BOOL fSuccess; TCHAR *pcCommPort = TEXT("COM1"); // Most systems have a COM1 port // Open a handle to the specified com port. hCom = CreateFile(pcCommPort, GENERIC_READ | GENERIC_WRITE, 0, // must be opened with exclusive-access NULL, // default security attributes OPEN_EXISTING, // must use OPEN_EXISTING 0, // not overlapped I/O NULL); // hTemplate must be NULL for comm devices if (hCom == INVALID_HANDLE_VALUE) Fehlermeldungen sind dann ua: "DCB": nichtdeklarierter Bezeichner Syntaxfehler: Fehlendes ")" vor Bezeichner "dcb" Syntaxfehler: Es fehlt ";" vor "{" "{": Funktionsheader fehlt - Parameterliste im alten Stil? Syntaxfehler: Fehlendes ";" vor Bezeichner "dcb" aber du hattest ja auch mal was wegen der Referenzen noch gepostet. Hat es damit was zu tun?
Sebastian M. schrieb: > ich habe hier einen kleinen Auszug: https://msdn.microsoft.com/de-de/library/windows/desktop/aa363214(v=vs.85).aspx DCB ist in Winbase.h (include Windows.h) definiert. auch sehe ich dein include nicht. Wie soll man helfen, wenn du nicht den complette code zeigst?
Peter II schrieb: > DCB ist in Winbase.h (include Windows.h) definiert. > > auch sehe ich dein include nicht. Wie soll man helfen, wenn du nicht den > complette code zeigst? sorry, dachte nicht dass es wichtig ist, wenn der selbe code weiter oben aus einem link nur herauskopiert ist #include <windows.h> #include <tchar.h> #include <stdio.h> #include "stdafx.h" void PrintCommState(DCB dcb) { // Print some of the DCB structure values _tprintf(TEXT("\nBaudRate = %d, ByteSize = %d, Parity = %d, StopBits = %d\n"), dcb.BaudRate, dcb.ByteSize, dcb.Parity, dcb.StopBits); } int _tmain(int argc, TCHAR *argv[]) { DCB dcb; HANDLE hCom; BOOL fSuccess; TCHAR *pcCommPort = TEXT("COM1"); // Most systems have a COM1 port // Open a handle to the specified com port. hCom = CreateFile(pcCommPort, GENERIC_READ | GENERIC_WRITE, 0, // must be opened with exclusive-access NULL, // default security attributes OPEN_EXISTING, // must use OPEN_EXISTING 0, // not overlapped I/O NULL); // hTemplate must be NULL for comm devices if (hCom == INVALID_HANDLE_VALUE) { // Handle the error. printf("CreateFile failed with error %d.\n", GetLastError()); return (1); } // Initialize the DCB structure. SecureZeroMemory(&dcb, sizeof(DCB)); dcb.DCBlength = sizeof(DCB); // Build on the current configuration by first retrieving all current // settings. fSuccess = GetCommState(hCom, &dcb); if (!fSuccess) { // Handle the error. printf("GetCommState failed with error %d.\n", GetLastError()); return (2); } PrintCommState(dcb); // Output to console // Fill in some DCB values and set the com state: // 57,600 bps, 8 data bits, no parity, and 1 stop bit. dcb.BaudRate = CBR_57600; // baud rate dcb.ByteSize = 8; // data size, xmit and rcv dcb.Parity = NOPARITY; // parity bit dcb.StopBits = ONESTOPBIT; // stop bit fSuccess = SetCommState(hCom, &dcb); if (!fSuccess) { // Handle the error. printf("SetCommState failed with error %d.\n", GetLastError()); return (3); } // Get the comm config again. fSuccess = GetCommState(hCom, &dcb); if (!fSuccess) { // Handle the error. printf("GetCommState failed with error %d.\n", GetLastError()); return (2); } PrintCommState(dcb); // Output to console _tprintf(TEXT("Serial port %s successfully reconfigured.\n"), pcCommPort); return (0); }
Sebastian M. schrieb: > sorry, dachte nicht dass es wichtig ist, wenn der selbe code weiter oben > aus einem link nur herauskopiert ist geht bei mir Problemlos. VS2013 -> neues Projekt -> Konsolenanwendung -> leeres Projekt -> neue Datei main.cpp -> code einfügen -> zeile stdafx löschen 1>------ Neues Erstellen gestartet: Projekt: ConsoleApplication1, Konfiguration: Debug Win32 ------ 1> main.cpp 1> ConsoleApplication1.vcxproj -> C:\Develop\x5\ConsoleApplication1\Debug\ConsoleApplication1.exe ========== Alles neu erstellen: 1 erfolgreich, 0 fehlerhaft, 0 übersprungen ==========
?!? hat das was mit VS2017 zu tun? bin halt auf arbeit und kann mir mal nicht so schnell ein altes VS installieren aber geatn wie du schriebst: Fehler Fehler C1010 Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen? ich krieg ne macke.... ich glaub ich lass es und versuche es mit einem anderen Beispiel-Code mich daran langsam aufzubauen
Sebastian M. schrieb: > ich krieg ne macke.... dann schalte einfach mal die vorkompilierten Header ab.
ok, jetzt scheint es zu laufen... kannst du kurz erklären was das bedeuten soll mit dem "abschalten" der vorkompilierten header? und es kommt immer kurz die konsole auf versuche diese halt über eine scanf-funk bzw while-schleife aufrecht zuerhalten, aber sie beendet sich trotzdem immer. Hat das was mit der Fehlermeldung zu tun? oder hast du eine bessere Idee, dass die Konsole offen bleibt? vielen dank für die mühen
Sebastian M. schrieb: > kannst du kurz erklären was das bedeuten soll mit dem "abschalten" der > vorkompilierten header? ich habe mich bis jetzt noch nicht wirklich mit den "vorkompilierten Header" beschäftig. Es soll die Kompilierzeiten verringern, aber meine Projekte sind so klein das das egal ist. Bis jetzt empfand ich sie nur als störend weil es nur Probleme damit gab. (zumindest bei mir). > oder hast du eine bessere Idee, dass die Konsole offen bleibt? einfach eine Breakpoint setzen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.