Ireyon
wenn du mit .NET anfängst, schieß ich dich zum mond, markus.
wie waers denn mit Lazarus 0.9.24 mit dem FreePascal-Compiler?
errt
Da hat er ja die Auswahl, von wem er hochgeschossen werden will^^
SLiPCoR
weil die Programmierfronten ähnlich verhärtet sind, wie bei Apple und Microsoft
"Meine Sprache is viel besser als die der andren" *fg*
Ich finde, sowohl VB als auch C++ haben beide Vorteile und Nachteile, hmm .NET hab ich bisher nich soviel Erfahrung, aber dass das Framework benötigt wird (was nur auf C installiert werden kann und > 100 MB belegt) ist schon nervig.
MfG
Belgabor
Bevor ihr Euch die Köppe einschlagt, wartet doch erstmal, ob Markus es schafft eine komplett statische Version zu kompilieren =)
Markus Lomberg
Jetzt streitet doch bitte nicht mehr über C++, VisualBasic, VB.NET, Pascal usw., ich hab mich nämlich für die tolle Sprache
Modula 2 entschieden, die alle meine Probleme löst.
Bisher benötigte ich die drei Zusatzdateien "borlndmm.dll", "cp3245mt.dll" und "vcl40.bpl". Dank des Tipps von SLiPCoR, nach Ausschalten des Häckchens bei den Laufzeit-Packages in den Borland Projektoptionen (siehe Anhang), funktioniert es auch schon mit nur zwei Zusatzdateien (ohne "vcl40.bpl")

. Wäre schön, wenn irgendwas einstellbar wäre, dass keine Zusatzdatei mehr benötigt würde.
PS: Das mit Modula 2 war natürlich nur ein Scherz.
SLiPCoR
Gugg mal da unter dem Registerreiter "Linker", da kannste noch den Punkt "Dynamische RTL verwenden" deaktivieren. Zumindest bei meiner Ausbildung war das immer wichtig, damit Programme überall liefen
MfG
errt
Wir streiten ja garnicht. Aber vielleicht solltest du Brainfuck nehmen. Das läuft garantiert ohne irgendwelche Runtime^^
Belgabor
Ich würde da eher Whitespace oder Malborge empfehlen
errt
Das kann ja kein Schwein lesen. Andererseits kann man es dann auch getrost veröffentlichen, denn niemand erkennt den schlechten Programmierstil.
Markus Lomberg
Es hat funktioniert! Mein Compiler-Problem ist gelöst! Danke, SLiPCoR, für deinen super Tipp bezüglich Deaktivierung von "Dynamische RTL".
Jetzt besteht CTR_Creator nur aus einer EXE. Ich weiß gar nicht, wie ich dir danken soll, SLiPCoR; dein Tipp ist einfach Gold wert. Da ich kein Gold besitze, das ich dir geben könnte, hab ich dir mal 100 Fahrtickets überwiesen. Nochmals vielen Dank!
SLiPCoR
Juhu, danke

Wenn was noch was ist, immer gerne
Markus Lomberg
Ja, da wäre noch eine Kleinigkeit:
Um einen Ordner zu erstellen, verwende ich die folgenden Befehle
AnsiString Systembefehl, Ordnername;
Systembefehl="md "+Ordnername;
system(Systembefehl.c_str());
Dadurch öffnet sich ganz kurz eine schwarze "DOS-Box", die dann sofort wieder geschlossen wird. Das sieht nicht besonders professionell aus, funktioniert aber zumindest.
Gibt es einen C- oder C++-Befehl, der einen Ordner erstellt, ohne den Umweg über "system" zu gehen? Danke im Voraus!
SLiPCoR
Google lieferte mir folgendes, funktioniert im Borland C++ und Visual C++
binde folgende Header-Datei ein:
#include <direct.h>
dann kannst du einfach folgendermaßen einen Ordner erstellen:
_mkdir("C:\Neuer Ordner");
Also, is klar, die Ordnerangabe sollte auch relativ funktionieren (dann aus der Sicht der erstellen Exe-Datei)
MfG
SLiPCoR
Belgabor
Mit relativ wäre ich vorsichtig, da gibt es mehrere Möglichkeiten was Windows als das momentane Verzeichnis ansehen könnte.
Die "offizielle" Windowsfunktion ist soweit ich weis CreateDirectory.
SLiPCoR
| quote: |
Original von Belgabor
Mit relativ wäre ich vorsichtig, da gibt es mehrere Möglichkeiten was Windows als das momentane Verzeichnis ansehen könnte.
Die "offizielle" Windowsfunktion ist soweit ich weis CreateDirectory. |
Du hast Recht, ich hab mich nochma schlau gemacht. Für Windows ist die API "CreateDirectory", aber das _mkdir ist eine standardmäßig implementierbare Funktion, die auch für C++ gedacht ist, da sie via <> eingebunden werden kann, da sie im Standardverzeichnis drin ist (und nicht evtl. extern geladen werden muss).
CreateDirectory wird so gemacht:
#include <windows.h>
CreateDirectory (char *DirName, SECURITY_ATTRIBUTES Attribs);
Gibt eine NULL zurück wenn Fehler, sonst >0
Kannst dich entscheiden
MfG
Belgabor
Man sollte noch hinzufügen dass man die Attribs auch auf NULL setzten kann, sich also darum nicht zu kümmert braucht.
Markus Lomberg
Danke für eure Hilfe. Ich hab mich für CreateDirectory entschieden. Da ich am Spätnachmittag noch keine Ahnung hatte, was ich bei SECURITY_ATTRIBUTES angeben sollte, hat das Rumprobieren etwas länger gedauert. Mithilfe von Google hab ich's dann aber doch geschafft und einfach NULL reingeschrieben, wie kurz darauf auch von Belgabor hier gepostet.