microcontroller und roboteransteuerung für anfänger
-
Oh Mann :xmas2:
Dir fehlt vermutlich kein Compiler, sondern die Grundlagen damit umzugehen.
Ich hab jetzt nur einen C++-Builder 2009 hier, aber ich versuchs mal:
Auf C++Builder-Projekte -> Konsolenanwenung klicken,
das entspricht bei Dir wie oben geschrieben "Datei ... Konsolenexperte".Bei mir kommt dann ein Dialog wo man C++ als Typ auswählen kann und ein Häkchen bei VCL verwenden entfernen sollte.
Dann macht er eine neue cpp-Datei auf.
Wenn man die jetzt so ergänzt:
//--------------------------------------------------------------------------- #include <windows.h> #include <iostream> #pragma hdrstop #include <tchar.h> // Diese Zeile brauchst Du im BCB6 nicht //--------------------------------------------------------------------------- using namespace std; #pragma argsused // Bei Dir steht hier int main(int argc, char* argv[]) , bitte so lassen int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello World" << endl; getchar(); return 0; } //---------------------------------------------------------------------------
Bitte achte auf meine Kommentare im Quelltext, diese Beispiel wurde mit einem neueren C++Builder geschrieben. Lass die Zeile mit dem Main so wie sie bei Dir aussieht.
Lässt sich das Programm dann übersetzen ?
Wenn man es startet, erscheint dann ein Konsolenfenster mit Hello World, das weggeht, wenn man eine Taste drückt ?Und ja, das Programm sieht anders aus, als die Programme mit Deinem Button.
Und nein, Du kannst beides nicht so einfach mischen.Entweder Du schreibst ein VCL-Programm mit Buttons oder ein Konsolenprogramm mit cin und cout. Aber nicht beides gleichzeitig.
-
das mir einige/viele Grundlagen fehlen, will ich nicht bestreiten...
hoffe aber, dass das trotzdem bald mal klappt.ich hab diese Anwendung mal über New->Console Wizard(habs nur in englisch) (Häkchen bei VLC entfernt, Häkchen bei C++, bei CLX und Console Application drin) geöffnet. Ich habe auch die Kommentare beachtet, aber leider wurden mir wieder folgende Fehler angezeigt
:
[C++ Error] Unit1.cpp(14): E2451 Undefined symbol 'cout'
[C++ Error] Unit1.cpp(14): E2451 Undefined symbol 'endl'
[C++ Error] Unit1.cpp(16): E2268 Call to undefined function 'getchar'das ist doch fürn Kanal... das ich nicht mal die simpelsten Konsolenanwendungen hinkriege.
zumindest bin ich schon mal weiter, was die Schreibweisen angeht.
-
Die
#include <windows.h> #include <iostream>
und das
using namespace std;
sind auch da wo sie hingehören ?
Lass das getchar() eventuell mal weg, bin nicht sicher ob der BCB6 das hat.
-
Mein Programm sieht in etwa so aus:
//--------------------------------------------------------------------------- #include <windows.h> #include <iostream> #pragma hdrstop //--------------------------------------------------------------------------- using namespace std; #pragma argsused int main(int argc, char* argv[]) { cout << "Hello World" << endl; return 0; } //---------------------------------------------------------------------------
Jetzt kommt nur noch:
[C++ Error] Unit1.cpp(16): E2451 Undefined symbol 'cout'
[C++ Error] Unit1.cpp(16): E2451 Undefined symbol 'endl'Und wenn ich
getchar();
drin hab, kommt halt noch der andere Fehler.
total blöd
-
So, die Version habe ich gerade nochmal mit dem BCB6 getestet, geht ohne Probleme.
Sorry für die Verwechslung mit dem getch(), dachte das geht nur bei VC.
//--------------------------------------------------------------------------- #include <iostream> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- using namespace std; #pragma argsused int main(int argc, char* argv[]) { cout << "Hello World" << endl; getch(); return 0; } //---------------------------------------------------------------------------
-
kein Ding, ich bin über jegliche Hilfe froh!
funzt aber auch nicht.
Das muss doch aber nun langsam an meiner Borland Version liegen...
Hab soweit alles probiert, aber immer und immer wieder kommen diese Fehler.Gabs evtl. Versionen, die nur VCL tüchtig waren? Denn das läuft ja ohne Probleme...
-
Du willst Robos und anderen Krimskrams ansteuern...
das mir einige/viele Grundlagen fehlen, will ich nicht bestreiten...
dann kommst du so aber nicht sehr weit. Um das zu machen was du vorhast werden noch Jahre vergehen. Arbeite dich mal langsam vor
funzt aber auch nicht.
Das muss doch aber nun langsam an meiner Borland Version liegen...
Hab soweit alles probiert, aber immer und immer wieder kommen diese Fehler.Gabs evtl. Versionen, die nur VCL tüchtig waren? Denn das läuft ja ohne Probleme...
Jede Borland C++ Version untersützt seit frühster Zeit die Konsolenanwendungen da sie Grundlage jeder Programmierung sind
-
wow, solange
???
hab von jetzt an noch genug Zeit, bis die Kiste stehen soll (Der Robo soll auch nur drei Aktionen ausführen und kein Auto bauen können). Man wächst schließlich mit seinen Aufgaben.
Mein Grundprogramm für die spätere Aufgabe steht ja schon fast (in VCL), aber da ich noch nicht herausfinden konnte, auf welche Art man mit µC oder Robotern kommunizieren kann, wollte ich mich mal an die Konsolenanwendung wagen.
Glaub ich ja, aber warum erkennt er diese Befehle dann bei mir nicht? Ich habe ja alles soweit wie beschrieben ausgeführt.
-
Hm,
ich fürchte auch, vom Robotersteuern bist Du noch weit weg, aber das wollte ich nicht so deutlich sagen.
Aber, auf allen Versionen vom C++-Builder gehen Kommandozeilenprogramme.
Ich wüsste jetzt auch nicht, wie man einen sollen Fehler hinbekommen könnte, außer vielleicht in den Headerdateien herumzuschreiben.
Er findet iostream, aber nicht was drin ist ? Sehr merkwürdig.
Die Fehlermeldung deutet eigentlich auf ein vergessenes using namespace std; aber das scheint ja drin zu sein.
-
Also um es mal so zu sagen, ich habe davon noch gar keinen Plan
.
Aber was noch nicht is...Richtig. Ich hab mir auch schon spaßeshalber diverse andere cpp-Dateien heruntergeladen, aber immer waren Meldungen dabei, dass er die Konsolenbefehle nicht kenne. Ich würde den Fehler auch immer zuerst beim Benutzer suchen, aber bei solch einer kleinen Anwendung mit so wenig Fehlerquellen und richtigem Code...
-
lad dir mal zum testen dev++ runter und hack mal da ein
#include <iostream> using namespace std; int main() { cout<<"hallo welt"; getchar(); return 0; }
bist du dir auch sicher das du bei der auswahl von konsollenprogramm auf c++ und konsolenanwendung geklickst hast
?
-
also mit dev++ klappt das wunderbar...
Ich bin unter Borland auf New-> unter "New Items" ->New-> Console Wizard (alles leider in englisch).
Dort konnte ich den Source Type C oder C++ auswählen (C++ ausgewählt).
Dann standen mir noch zur Auswahl:
Use VCL (nix)
Use CLX (markiert)
MultiThreaded (stand nicht zur Auswahl, ist aber ebnfalls markiert)
ConsoleApplication (markiert)
Specify project source (nix)
Nachdem ich OK gedrückt habe, kam eine Unit.cpp, indem folgendes stand:
//--------------------------------------------------------------------------- #include <clx.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { return 0; } //---------------------------------------------------------------------------
Dort habe ich dann den "Hello World" Code eingeben und dann kamen die Fehler.
Aber unter Dev++ funktioniert es ohne Probleme...
Basiert der auch auf C++? Dann kann ich ja den zum probieren nehmen, oder?
-
Solange du keinen Grafikdesinger brauchst kannst du auch den nehmen.
-
CLX darf auch nicht markiert sein, da du ja kein Kylix-Derivat programmieren willst. CLX ist quasi die Linux-Variante der VCL, also in deinem Fall nicht notwendig.
-
Gut zu wissen, hatte aber leider auch keinen positiven Effekt gehabt... Ich versuche mich einfach mal weiter am dev++