PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ FAQ



zao
29.08.2007, 13:41
http://img2.imagebanana.com/img/d79sbixk/faq.png (http://img2.imagebanana.com/)



Hier findet ihr ausführliche Antworten auf häufig gestellte Fragen.

Kann ich sofort mit C++ anfangen, oder erst mit was Einfacherem?
Ja ihr könnt sofort mit C++ anfangen, wenn ihr es auch wirklich wollt. Das heißt es hängt von euch ab, man hat in einer anderen Sprache bestimmt früher größere Erfolgserlebnisse, aber wenn man C++ kann, sind andere Sprachen ein Klacks. Im großen und ganzen ist es empfehlenswert.

Welchen Compiler welche Entwicklungsumgebung?
Es gibt drei meiner Meinung nach sehr gute C++ Compiler. Zum ersten wäre das DevC++, dieser ist besonders für Anfänger sehr geeignet, da ihr mit ihm 100%iges C++ schreiben könnt.
Zum zweiten der C++ Builder von Borland, dieser hat eine integrierte Funktion, mitder ihr euch eure Fenster zusammenbasteln könnt, das heißt weniger Programmieraufwand.
Und zum Schluss Visual C++ Express, diese ist wirklich sehr aktuell, damit könnt ihr euch wie beim C++ Builder eure Fenster mit einer Funktion zusammenbasteln, und das im neusten Xp manifest Design. Ein Nachteil ist, dass sie auf .NET basiert und somit der Benutzer des Programmes das .Net Framework 2.0 oder höher installiert haben muss(bei Vista besteht dieses Problem nicht, da das Framework dort Standard ist)
N00bor hat die Downloadlinks schon reingestellt.

Autostart
Es gibt viele verschiedene Möglichkeiten einen Autostart durchzuführen. Ich werde die zwei einfachsten genauer erläutern und anhand von codes erklären.
Die erste und einfacherere Methode wäre die, das Programm in den Autostartordner von Windows zu kopieren. Um zu kopieren brauch man immer zwei Pfäde, einmal den Quellpfad und einmal den Zielpfad. Der Zielpfad ist ja schon klar, nämlich der Windows Autostartodner
C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart.
Den Quellpfad müssen wir uns erst besorgen und das geht so!


char SpeicherOrt[MAX_PATH+2];
GetModuleFileName(NULL,SpeicherOrt,MAX_PATH);

Der Pfad + Filename (Beispiel C:\Programme\programm.exe) wird in dem char array SpeicherOrt gespeichert. Wir brauchen auch den Pfad + Filename in unserem Ziel.

char Ziel[MAX_PATH+2] = "C:\\Dokumente und Einstellungen\\All Users\\Startmenü\\Programme\\Autostart\\file.exe";

Nun können wir Kopieren dazu verwenden wir "CopyFile"


CopyFile(SpeicherOrt, Ziel,false);

Die ersten beiden Parameter sind eben Quelle und Ziel, nun fragt ihr euch wohl warum false. Wenn der Parameter auf false steht überschreibt er alles, steht er auf true dann wird der Vorgang abgebrochen wenn die datei schon existiert.

Soweit zur 1. und einfachereren Methode

Nun zur zweiten Methode, hier werden wir einen Registrywert erstellen, um genau zu sein einen REG_SZ wert und im Schlüssel HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\ CurrentVersion\\Run
speichern. In den Wert schreiben wir nun den Pfad des datei die wir starten möchten.

Erst müssen wir den Schlüssel öffnen und das geht so.


HKEY hKey;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);

so nun ist der Schlüssel geöffnet jetzt können wir unseren Wert erstellen.


BYTE cString[]="C:\\Programm.exe";//der pfad des zu startenden programmes
RegSetValueEx(hKey,"der name eueres wertes",0,REG_SZ,cString,strlen(cString)+1);

das wars dann auch schon.

C oder gleich C++?
Es kommt immer wieder die Frage, soll ich erst mit C anfangen oder doch gleich C++. Ich sage sofort C++. Andere sagen ja C++ baut auf C auf, ja das stimmt, na und? Es hat sich einiges verändert, es wurde viel verbessert, deshalb haben sich die Leute gesagt, es wurde soviel verändert, die Sprache kann nicht mehr C heißen. Und jetzt Frage ich euch wollt ihr etwas veraltetes lernen?






WEITER EINTRÄGE FOLGEN