Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » problem beim einbinden von <list>...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.06.2016, 09:48 Uhr
~gast19802
Gast


Hallo Zusammen,

ich bin kein absoluter Neuling in C++ mehr bin aber sehr weit davon entfernt ein Pro zu sein.
Es geht bei mir um folgendes Problem. Ich brauche ein Programm, dass Daten, die übere die serielle schnittstelle reinkommen aufnimmt, analysiert und dann gegebenefalls abspeichert.

Nach langem probieren und viel suchen im Netz habe ich ein Programm zusammen, was zumindest die reinkommenden Daten aufnimmt.

Folgende Bibliotheken und Files sind verlinkt:

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "error.h"

kein using namespace std; verwendet.

Mein Problem ist nun, dass sobald ich die Bibliothek <list> includiere, um mit den Daten etwas zu machen, nix mehr geht!

Darf man die STL oder Staqndard Lib nicht mit <x.h> kombinieren oder woran kann das liegen.

Wichtig ist noch, dass ich in einem anderen File mit <list> sehr wohl alles machen kann und lauffähige Programme hinbekomme.

Viele Grüße
Jens
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.06.2016, 10:53 Uhr
ao

(Operator)



Zitat von ~gast19802:
Mein Problem ist nun, dass sobald ich die Bibliothek <list> includiere, um mit den Daten etwas zu machen, nix mehr geht!

Darf man die STL oder Staqndard Lib nicht mit <x.h> kombinieren

Doch, natürlich darf man das.

"... nix mehr geht" ist nicht gerade eine Fehlerbeschreibung, mit der andere Leute etwas anfangen können, hellsichtige Menschen vielleicht ausgenommen. Könntest du das ein wenig präzisieren?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.06.2016, 12:21 Uhr
~gast19802
Gast


Danke für die klare Antwort.

Hatte das schon vermutet.
Wenn ich in betreffendem File die <list> zusätzlich einbinde, dann mekert mein Compiler an dieser Stelle und sagt, " No such file or directory."

Das kann waber nicht sein, denn wenn ich mit dem gleichen Compiler ein anderes Projekt schreibe und dort <list> einbinde funktioniert es ohne mucken.

Ich habe jetzt eine andere Variante ohne die oben angegebene error.h Variante geschrieben, die dieses Problem nicht hat. Warum kann ich nicht sagen aber wenigstens komm ich weiter auf dem Weg zu einer Lösung des Problems.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.06.2016, 16:02 Uhr
ao

(Operator)


Dann würde ich vermuten, dass die error.h einen Fehler hat, der den Präprozessor durcheinanderbringt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.06.2016, 07:57 Uhr
~f.-th.
Gast


Etwas spät und meine Kristallkugel ist gerade beim Service.


Zitat von ~gast19802:
Hallo Zusammen,

ich bin kein absoluter Neuling in C++ ...

Folgende Bibliotheken und Files sind verlinkt:

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include "error.h"

kein using namespace std; verwendet.

Mein Problem ist nun, dass sobald ich die Bibliothek <list> includiere, um mit den Daten etwas zu machen, nix mehr geht!

...

Viele Grüße
Jens


Hallo Jens, trenne C und C++ Zwar ist geschichtlich C++ aus C entstanden, aber man sollte diese heute als zwei getrennte Sprachen betrachten, denn C und C++ reagieren bei gleichem Quelltext nicht immer gleich

Bezogen auf deinen Quelltext bedeutet das, wenn du C++ programmieren möchtest versuche alle C-Header zu meiden.

Falls du den C++ Container <list> verwenden möchtest arbeite mit C++ Headern und schreibe C++. Wie hast du deinen Compiler bei C++ eingestellt? C++, C++98 oder C++??
Je nach C++ Version kann es sein das der Quelltext etwas anders aussehen sollte. Die Compiler übersetzen zwar meist auch älteren Quelltext problemlos, aber ich würde mich bei C++ Quelltext für Uralt-Compiler geschrieben nicht 100% drauf verlassen. Und da bei dir etwas nicht so funktioniert wie du es möchtest =>> den Quelltext deutlich modifizieren!!!


Zu Fehlerbeschreibungen: Einen möglichst kurzen lauffähigen Beispiel-Quelltext zeigen mit aussagefähiger Fehlerbeschreibung. Also falls der Compiler oder der Linker eine Fehlermeldung ausgibt die ersten 3 bis 5 Fehlermeldungen komplett zitieren

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.06.2016, 02:05 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von ~f.-th.:
Hallo Jens, trenne C und C++ Zwar ist geschichtlich C++ aus C entstanden, aber man sollte diese heute als zwei getrennte Sprachen betrachten, denn C und C++ reagieren bei gleichem Quelltext nicht immer gleich

Bezogen auf deinen Quelltext bedeutet das, wenn du C++ programmieren möchtest versuche alle C-Header zu meiden.


genauer:

C++:
//////////////////////////////////////////////////////////////////////////////////
#include <windows.h>    // Das ist zwar ein C-Header, aber wenn das Programm
                        // unter Windows laufen soll, ist der unvermeidlich.
#include <stdio.h>      // rauswerfen! - entsprechender C++ Header ist <iostream>
#include <conio.h>      // rauswerfen - kann unter Windows auch nur schlecht
                        // verwendet werden.
#include <string.h>     // durch <string> - also ohne ".h" ersetzen
#include "error.h"


Grundsätzlich kann man sagen, dass jeder Header, der das ".h" mit sich führt, ein C-Header ist, und jeder Header, bei dem es fehlt, ein C++ Header.
Dann ist noch zu beachten, das die I/O-Funktion wie printf() in iostream nicht vorhanden sind, weil das I/O-Konzept anders gebaut ist. Darin liegt einer der wesentlichen Unterschiede zwischen C und C++. Wenn Du unbedingt printf() & Co. mit C++ verwenden willst (musst?), dann verwende die C++ Pendants <cstdio>.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 19.06.2016 um 02:15 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.06.2016, 11:40 Uhr
~f.-th.
Gast


Zu den String-Headern in C und C++

Ursprünglich wurden C-Compiler meist ohne String-Header ausgeliefert. Es wurden viele externe Bibliotheken geschrieben, in diversen Dialekten, um die String-Funktionen zu realisieren. Irgendwann hat man sich dann seitens der Compiler-Entwickler entschlossen eine weitgehend gemeinsame Basis bei den Strings zu schreiben und mit den Compilern auszuliefern.
Diese gemeinsame Basis erleichterte die Arbeit, da man nicht mehr auf zig Varianten bei den Strings Rücksicht nehmen musste.

Bei C++ ist der entsprechende Header, wenn C-Konstrukte im Quelltext verwendet werden sollen, cstring. Besser ist heute in C++ allerdings der Header string, ohne .h der die C++ Idee besser umsetzt.

Und möglichst nur eine der String-Header-Varianten in einem C++ Quelltext verwenden, sonst viel Spass bei der Fehlersuche.


Sollte C oder C++ Quelltext eine lange Geschichte haben und ursprünglich mit unterschiedlichen Compilern geschrieben worden sein, sind die verwendeten String-Varianten oft Ursache für eine zeitraubende Fehlerursache.


"Do never change a running system" aber irgendwann "wer zu spät kommt, den bestraft ..."

Viel Spass
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.06.2016, 20:35 Uhr
Hans
Library Walker
(Operator)



Zitat von ~f.-th.:

"Do never change a running system" aber irgendwann "wer zu spät kommt, den bestraft ..."


... der neuste Standard. - Bzw. der Compiler, der ihn umsetzt.

scnr,
Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: