Hey,
ich bin zwar kein Experte auf diesem Gebiet, habe aber auch schon einmal solche Probleme gehabt Grundsätzlich ist es mir nicht bekannt, mit einer Batch-Datei einen solch frühen Start zu ermöglichen... Wenn du also beim Systemstart deine Batch ausgeführt haben möchtest, kannst du z.B. eine Verknüpfung in den Autostart Ordner packen... Ich glaube aber, dass die Dateien, die bei [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] stehen, früher ausgeführt werden... Das kannst du ja mal ausprobieren
Ansonsten würde ich auf die Hochsprachen verweisen und das ganze mal in C++ versuchen zu realieren...vllt wirst du ja da fündig
In der Projektkonfiguration gibt es eine Rubrik C/C++, und darunter gleich der erste Unterpunkt (general - sorry, hab's auf englischsprachig eingestellt). Dort findet sich als erstes 'zusätzliche Include-Directories' - hier allegro eingeben (bzw. allegro5). Allerdings befürchte ich, dass es mit Deiner Version weitere Schwierigkeiten geben wird, denn Du mußt Allegro selbst erst einmal erstellen.
Und da wird es einige Präprozessor-Direktiven geben, die gesetzt werden müssen, um die gewünschte Version zu erzeugen. Zudem ist damit zu rechnen, dass die Beispiele so nicht mehr funktionieren, eben wegen der veränderten API.
Die Version deren Link ich beigefügt hatte, bringt die fertigen Libraries mit Aber da muß dem Linker auch Bescheid gegeben werden, was er da mit behandeln muß
- Linker General additional directories, und in command line den Namen der Library anfügen.
Und sorry wg. 'trollig' - ist nur auffällig, dass, sowie ich mal wieder was poste, innerhalb von 24 std. ein neuer Allegro-Thread auftaucht...
Also ich glaube du siehst da was falsch.
Mein Vorschlag bezieht sich auf deine Eingangsfrage, wie EXE-Dateien eines Verzeichnisses ausgeführt werden können. Dass du nun plötzlich auch Arrays in Batchdateien verwenden willst, ist was völlig anderes und komplizierteres. Ich kenne dieses Subforum nicht gut genug, um einzuschätzen, ob Batchprogrammierung hier genehm ist, werde aber hier trotzdem keinen Kursus beginnen. Arrays und m.E. ass. Arrays kann man jedenfalls mit Tricks einsetzen, das möge dir dann aber jemand anderes erklären.
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
hi
sorry aber wer nicht mal weis wie man die ide startet nach der installation, der sollte sich mal mit den os bedienungs grundlagen befassen !
und vieleicht mal ein buch besorgen.
lowbyte
Sqwan schrieb:
int main ()
{
int auswahl ();
{
Label1:;
Darf ich mal fragen was das werden soll? Und goto's ?
Das frag ich mich aber auch! Les erstmal dein Buch.
int main ()
{
int auswahl ();
{
Label1:;
Also ich weis nicht ob das nach ANSI-C erlaubt ist. Ich meine eine Funktion in einer Funktion. Schreib doch lieber
int auswahl ()
{
//...
}
int main
{
auswahl();
return 0;
}
Auf Gotos würde ich persönlich verzichten - ich nutze diese möglichkeit nie. Das ist wohl eher was für Assemblerprogrammierer. Und Assembler wird heute eigentlich nur noch benutzt um bei großen Programmen(z.B. Spielen) zu langsame Funktionen zu tunen, oder um ein eigenes Betriebssystem zu schreiben(siehe anderes Forum )
Also weg damit! Lieber Rekursion anwenden. Das bedeutet das eine Funktion sich selbst aufruft. Statt goto Label1; Lieber auswahl(); Die anderen Labels würde ich an deiner Stelle durch andere Unterfunktionen ersetzten, die vor der Funktion Auswahl definiert werden!!! An deiner Stelle würde ich erstmal richtig C lernen bevor man Fragen stellt die nicht unbedingt sein müssten. Außerdem noch ein Tipp: Lern am besten noch C++. Ist moderner, objektorientiert und ist einfacher. Zum beispiel wird aus
scanf("%d",&ps);
cin >> ps;
Und aus
printf("Der Prozensatz beträgt %d\n\n",ps);
wird
cout << "Der Prozensatz beträgt " << ps << endl;
Ist aber nur ne Idee. Also lies dein Buch weiter und lern ordentlich C.
Jonas
Persönliche Meinung:
Lern lieber Python als Windows Powershell. Da haste mehr von und mit Python kann man sehr viel mehr bzw das selbe anstellen was kurze Verwaltungsscripts angeht.
rya.
Hallo MaBa,
vielen Dank für Deine Antwort. Ich habe das Problem jetzt mit dem -mwindows Flag gelöst:
> gcc foo.c -o bar.exe -mwindows
Macht genau das, was ich wollte
Gruß, Roland
Wozu conioex.h?
Du hast doch schon SetConsoleCursorPosition zum Cursor setzen und die Farbe ändern kannst du auch. Mehr brauchst du eigentlich nicht.
Für das Menu kannst du ja erstmal dein Dokument "zeichen" und dann das Menu darüber malen. Weiss jetzt nicht genau was deine Frage ist.
Was mir spontan auffällt:
C/C++ Code:
ir.Event.KeyEvent.wVirtualKeyCode == '3' && _count >= 3
Das hast du ja quasi 10 mal, das geht sicher auch besser als 10x if
Meine Frage konkret: Wie Bildschirm in Buffer sichern? Das meine ich(z.B. für "Dialogfelder"). Das mit dem Menü war bloß ein Beispiel. Aber wenn ich ein mehrseitiges Dokument habe, müsste ich wieder raufscrollen zum Menü, und selbst wenn das automatischpassiert müsste ich wieder runterscrollen zu meiner Stelle im Dokument. Außerdem ist in deinem Vorsclag auch ein kleiner Fehler. Wenn ich eine Statusleiste implementieren(ist das richtig geschrieben ) möchte dann würde die bei langen textdateien
int i = 0;
while(i < 1000)
{
cout << "sehr ";
i++;
}
weit runterrücken. Das meine ich. Wie Scrollleisten machen?
Lass die Precompiled Headers raus und erstell ein komplett neues Projekt. Anschließend fügst du ein neues Source File hinzu und nennst es Main.cpp
Dort kannst du nun vernünftig programmieren.
#include <iostream>
int main()
{
std::cout << "Hello, World!" << std::endl;
}
feilensystem schrieb:
das problem ist also dass der dateiname beim "auf die exe ziehen" falsch übergeben wird?
Schon möglich, aber warum springt er nicht in die Exception?
Dazu will ich noch ergänzend sagen, dass fflush(stdin) ja nicht von Grund auf böse ist. Wenn ich kleine Testprogrämmchen mache, nutze ich es auch manchmal. Es hängt aber vom Compiler ab, ob dies erlaubt ist. Da ich ausschließlich den MS-Compiler nutze, darf ich auch stdin fflushen. Nur sollte man diese Methode nicht hier im Forum als Lösung für das Problem posten, zumal der Threadersteller ja bereits gesagt hat, dass er einen anderen Compiler benutzt. Trotzdem kannst du (genau wie ich) im Visual Studio natürlich gerne fflushen, was das Zeug hält, solange du die nicht vorhandene Portabilität im Auge behältst.
vredezbyrD schrieb:
Ich hab jetzt eine Lösung gefunden:
In der Headerdatei "shlobj.h" war die Deklaration von "SHGetSpecialFolderPath" mit folgender Direktive eingeschränkt:
#if (_WIN32_IE >= 0x0400)
Naja, ich habs auskommentiert und jetzt funktionierts.
Nach dem Motto "Was nicht passt, wird passend gemacht". Du solltest deine Projekteinstelllungen anpassen, aber nicht fremden Code auskomentieren.
Dieser Thread wurde von Moderator/in Nobuo T aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Ich hab hier nen code weis aben nicht ob der richtig ist:
#include <sfml-audio.dll>
int main() {
}
sfml-audio.dll steht bei mir unter ressourcendateen ist das auch richtig?
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Forum ANSI C wäre passender.
fgets liest gemäß Standard maximal n-1==12 Zeichen ein oder endet beim vorigen Auftreten von '\n'. Das an 13. Stelle stehende \r\n bzw. \n in deiner Datei wird durch das nächste fgets gelesen und anschließend auch ausgegeben, wie man sieht.
int main() ist Standard, void main() nicht.
Für DOS gab es einige Ansätze USB zu nutzen:
http://de.wikipedia.org/wiki/FreeDOS
Ich weiss ja nicht welche Hardware unserer Beitragsersteller wählt, ist die nicht ganz so alt und er will mehr fensterln, ...
Auf Geschwindigkeit kommt es in seinem Projekt ja wahrscheinlich nicht in erster Linie an, also sollte die Nutzung von Interrupts kein Problem sein.
Wenn doch, oh je lang ist es her, hab mal unter DOS Treiber für Grafikkarten mit höherer Auflösung geschrieben. Die waren relativ schnell, hatten aber den Nachteil nur für eine Grafikkarte optimiert zu sein. Also, wenn ich mich recht erinnere waren die Nummern der Interrupts nur verschlüsselte Einsprungsadressen.
Unter Windows NT und neuerem OS sind diese Hardwarenahen Eingriffen auf Sicherheitsgründen gekappselt worden.
Unter DOS hat man als Laie also viel eher ein Erfolgserlebnis mit wenig Quelltext.
Na dann viel Spass noch
f.-th.