C++ speichern von ordnern und header datein
-
Hi ich hab erst angefangen zu programmieren
ich habe ein programm geschrieben und möchte es "instalier" bar machen also vesuche ich ein programm zu schreibe das die nötigen ordner erstellt und die header datein erstellt
ich habe grade angefangen und zum 1 geht es nicht und zum anderen ist es sehr mühsam
#include <fstream> #include <cstdlib> #include <conio.h> using namespace std; int main() { system("md Project"); // er soll denn ordner erstellen system("pause"); system("cd C:\\Project\\test\\Project\\"); // jetzt soll er in den ordner gehen und dort den order games erstellen das macht er aber nicht er erstellt den ordner einfach neben Project system("pause"); system("md Games"); system("md header"); system("cd header"); ofstream myfile; myfile.open ("Menu.h.h"); myfile << "Writing this to a file.\n"; // gibt es eine ander möglichkeit ein header, cpp oder exe(exe geht gar nicht) datei zu erstellen da es sehr mühsam ist jede zeile einzugeben und ein \n dachinter zu machen myfile.close(); return 0; }wenn das so nicht geht dan bitte eine andere möglich keit ordner cpp und exe datein zu erstellen
-
also: was hat die cpp datei mit dem installieren eines programms zu tun?
gehen tut es z.bsp. so:
"cd asdf && md qwe && md wer"
richtig geht es direkt mit der winapi.
installierbar ist trotzdem nicht wirklich einfach, da du die dateien ja noch irgendwo gespeichert haben musst und dann auslesen / kopieren musst.bb
-
Warum willst du bei nem Installer die Headerdateien mitgeben?
Abgesehen davon: So viel system() an einem Ort tut weh. Und dein Programm funktioniert nur richtig, wenn es im Ordner C:\Projects\test aufgerufen wird. Google mal nach absoluten und relativen Pfadangaben. Und nach CreateDirectory gleich mit!
EDIT: Zu langsam

-
[quote="unskilled"]also:
gehen tut es z.bsp. so:
"cd asdf && md qwe && md wer"kannst du etwas genauer werden da ich nicht verstehe wie ich das machen soll
mir winapi kenn ich mich net aus deshalb wollte ich es mit c++ machen
das mit dem speichern icst auch ein problem zur zeit kenne ich keinen anderen weg als das
myfile.open ("Menu.h.h"); myfile << "HIER DAS PROAMM.\n UND HIER DIE NÄCHSTE ZEILE"; // myfile.close();und das dauert mega lang alle header da rein zu schreiben
Abgesehen davon: So viel system() an einem Ort tut weh. Und dein Programm funktioniert nur richtig, wenn es im Ordner C:\Projects\test aufgerufen wird. Google mal nach absoluten und relativen Pfadangaben. Und nach CreateDirectory gleich mit!
das weiß ich aber ich kenne keine andere möglich keit ich google einfach mal

-
philip.roman.adam@gmail.c schrieb:
mir winapi kenn ich mich net aus deshalb wollte ich es mit c++ machen
Die system()-sache ist schlicht und einfach Mist.
CreateDirectory ist z.B. so eine Funktion aus dem WinAPI. Der Vorteil lieg darin, das du bei dieser Funktion auch die Rückgabewerte prüfen kannst und so checken kannst ob die Funktion richtig ausgeführt wurde, was bei system nicht möglich ist. Außerdem wird bei system immer ein neuer Prozess erzeugt, was ein riesiger Overhead ist, dafür, dass md intern auch nur CreateDirectory aufruft.Aber ich frage nochmal: Wieso willst du dein Programm in einen Header schreiben? Der Code in Textform ist nicht ausführbar. Warum gibst du nicht einfach die Binary weiter wie es jeder vernünftige Installer macht.
Und es gibt vorgefertigte Programme um Installer zu erstellen. Und die zu benutzen ist wesentlich besser, als 80 system()-aufrufe. Guck dir mal sowas wie InnoSetup an.