brauche SCHNELL feedback bitte !! (läuft mein Programm unter Windwos?)



  • hdiloggedout schrieb:

    könnt ihr mir bitte sagen, wie genau ich das dann zu einem programm mach, dass man in windows ausführen kann?

    durch 'nen compiler/linker jagen und dann - starten.
    das ist unter linux nicht anders. als C-entwicklungskit unter windows empfehle ich das: http://www.christian-heffner.de/index.php?page=download&lang=en
    (hat alle wichtigen .h und libraries, um executables unter win zu erstellen).
    🙂



  • winapi-fan schrieb:

    supertux schrieb:

    dass du z.b. entscheiden kannst, wann, wie und ob ein neuer Prozess erzeugt wird.

    huh? wann, wie und ob hast du mit CreateProcess auch, allerdings ohne dieses unnötig komplizierte handling eines unixartigen-forks.
    🙂

    kann es sein, dass wir Birnen mit Äpfeln vergleichen? Ich kenne CreateProcess nicht und was ich davon in der MSDN gefunden habe, deutet für mich darauf hin, immer ein neues Programm im security context (was auch das ist) ausgeführt wird. Was ist, wenn ich nur den aktuellen Prozess duplizieren will?

    @hdi: liest du überhaupt, was man für dich gepostet hat? 😕



  • supertux schrieb:

    deutet für mich darauf hin, immer ein neues Programm im security context (was auch das ist) ausgeführt wird.

    ja, so ist es. der 'security descriptor' ist im prinzip eine struktur, in der alles steht, was ein prozess darf und was nicht. der gestartete prozess 'erbt' im normalfall den SD des aufrufers.

    supertux schrieb:

    Was ist, wenn ich nur den aktuellen Prozess duplizieren will?

    was meinst du mit duplizieren? wenn sich ein programm selbst nochmal startet? das geht so:

    // programm.exe
    int main()
    {
      CreateProcess ("programm.exe", ...);  // gleicher name wie der aufrufer
    }
    

    🙂



  • oh man leute, bitte macht n andres topic auf.

    das hat doch echt nix mehr mit dem hier zu tun 😉

    also jetzt ging das alles zu schnell, viele posts usw ich versteh grad nicht was ich tun kann/soll.

    Also wie muss ich jetzt das "clear" machen, damit es richtig geht unter windows?

    und sonst muss ich also nichts mehr machen?

    einfach den compiler auf dem win-system installieren und ausführen, so wie ich das bei mir auch immer mach?
    sonst nix?



  • Update:

    Okay ich habe das jetzt mal mit diesem PelleC compiler versucht..

    also eine funktion geht schon mal gar nicht, egal die brauch ich nicht unbedingt.

    aber das clearen des screen funzt nicht:

    void clearScreen(void){
    
    #ifdef WIN32
        System("cls");
    #endif
    }
    

    er compiled zwar, ich kann alles starten und es auch benutzen, aber er macht halt einfach nix immer wenn clearScreen() aufgerufen wird.
    Er ignoriert es quasi..

    Und @compiler-freak:

    Wie is'n das mit dem Compilen mit PelleC?
    Ich hatte Win32-Konsolenanwendung gewählt, aber wenn ich das Programm starte kann es keine Umlaute anzeigen? Die MS-DOS-Eingabeaufforderung kann das doch normalerweise schon...?



  • hdi schrieb:

    er compiled zwar, ich kann alles starten und es auch benutzen, aber er macht halt einfach nix immer wenn clearScreen() aufgerufen wird.
    Er ignoriert es quasi..

    der hat wohl das 'WIN32' nicht automatisch definiert für consolen-programme. dazu gehst du auf project->project options->compiler->define preprocessor symbols und setzt da das WIN32 ein. bei den CCFLAGS (ganz unten) steht dann sowas wie: -Tx86-coff -Ot -W1 -Gd -Go -DWIN32. das -DWIN32 zeigt dir, dass WIN32 nun definiert ist und dann sollte es klappen.

    umlaute: in strings sollte man besser keine zeichen ausserhalb des 7-bit ASCII zeichensatzes verwenden, man kann umlaute aber als zahl hineinschreiben. z.b. müsste: puts ("hell\x94, w\x94rld"); hellö, wörld ausgeben.
    🙂



  • CreateProcess-Fan schrieb:

    supertux schrieb:

    deutet für mich darauf hin, immer ein neues Programm im security context (was auch das ist) ausgeführt wird.

    ja, so ist es. der 'security descriptor' ist im prinzip eine struktur, in der alles steht, was ein prozess darf und was nicht. der gestartete prozess 'erbt' im normalfall den SD des aufrufers.

    supertux schrieb:

    Was ist, wenn ich nur den aktuellen Prozess duplizieren will?

    was meinst du mit duplizieren? wenn sich ein programm selbst nochmal startet? das geht so:

    // programm.exe
    int main()
    {
      CreateProcess ("programm.exe", ...);  // gleicher name wie der aufrufer
    }
    

    🙂

    interessant, und der durch CreateProcess erzeugte Prozess startet von Anfang an oder von dort aus, wo CreateProcess aufgerufen wurde? Da sehe ich nämlich eine andere Strategie, weil fork den gesamten Prozess und Zustand im Speicher dupliziert (das einzige, was der Vaterprozess und Kindprozess dann gemeinsam haben, ist der Programmcode).



  • @win32-freak:

    kann ich da nicht lieber im quellcode statt WIN32 etwas definieren, dass standartmässig bei PelleC aktiviert ist?

    Bzw. ich würde dann doch lieber wissen, wie ich eine exe datei bei mir erstellen kann, so dass sie funktioniert auf einem anderen rechner.

    mein programm ist nämlich ein spiel, und das geht an eine frau, und die studiert musik, und ich kann der da nich ankommen mit nem compiler wo sie sich erstma was definieren soll 😉

    ich meine wie machen denn die programmierer alle diese setup-dateien, die man einfach aufruft und die dann das programm installieren und alles geht dann?



  • CreateProcess-Fan schrieb:

    was meinst du mit duplizieren? wenn sich ein programm selbst nochmal startet?

    Ich hatte erst noch einen halben Flame verfasst, hab den aber wieder gelöscht. Bringt bei net/ten/vista/paledog/homo... eh nix.

    Worum es hier doch geht, ist, dass Herangehensweisen unter Unix und Windows historisch bedingt andere sind, und dass dadurch Verfahren, die auf der einen Seite sinnvoll erscheinen, auf der anderen wenig Sinn machen. Supertux sagt hier immer wieder, dass er von den Verfahren unter Windows keine Ahnung hat, eine Zurückhaltung von der sich die Windows-Seite gerne mal 'ne Scheibe abschneiden könnte 😉

    Unter UNIX startet man oft einen Prozess (Master), welcher sich dann selbst mehrmals dupliziert (Worker), ohne ein neues ausführbares Programm in den Speicher zu laden. Unter Windows hat man das meines Wissens nie so gemacht, hier nutzt man dafür seit jeher Threads. Unter Linux übrigens auch immer häufiger.

    win32-freak-freak schrieb:

    ich meine wie machen denn die programmierer alle diese setup-dateien, die man einfach aufruft und die dann das programm installieren und alles geht dann?

    Die kompilieren ihre Programme für alle Plattformen, die sie beliefern möchten, und machen daraus dann Setup-Dateien 😃
    (Je nach Komplexität des Projekts kann das ein Win32-Paket und ein Linux-TGZ mit statisch vorkompilierten Programmen sein, oder auch ein größeres Sammelsurium aus Paketen für unterschiedlichste Distributionen)



  • LordJaxom schrieb:

    Ich hatte erst noch einen halben Flame verfasst, hab den aber wieder gelöscht.

    ach, wie niedlich. warum hast du's nicht als unreg gepostet? das machst du doch sonst immer so, wenn du ausfallend werden willst.
    🙂



  • Leute anscheinend seid ihr ja noch im Thread aktiv.

    Könnt ihr mir also bitte bei dem eigentlichen Problem weiterhelfen?

    Ich weiss noch immer nicht, wie ich ein Programm zu einer exe datei machen kann, die man dann auf einem PC mit Windows ausführen kann 😞



  • hdi-loggedOut schrieb:

    Ich weiss noch immer nicht, wie ich ein Programm zu einer exe datei machen kann, die man dann auf einem PC mit Windows ausführen kann

    du hast dir doch 'pelles c' runtergeladen, oder?
    lass dir ein consolen-projekt erzeugen und dann gib im editor ein:

    #include <stdio.h>
    
    int main ()
    {
      puts ("hello, hdi-loggedOut");
      return 0;
    }
    

    dann klickst du in der toolbar auf dieses komische kästchen mit den drei pfeilen darüber und er macht dir eine 'exe' daraus.
    🙂



  • hdi-loggedOut schrieb:

    Könnt ihr mir also bitte bei dem eigentlichen Problem weiterhelfen?

    du liest unsere Posts nicht, oder du bist wirklich ein hoffnungsloser Fall. Wir haben dir schon mehrmals gesagt wie und es gibt genügend Beispiele im Thread.

    Ich weiss noch immer nicht, wie ich ein Programm zu einer exe datei machen kann
    

    😮 😕 mit einem Compiler! Wie oft muss man das dir sagen? Es gibt für Windows meherer freie C Compiler und IDEs, die mit Compilern kommen. Einfach unsere Posts lesen!



  • @supertux:

    ich lese ja, aber du meinst doch nicht ernsthaft dass "mit einem compiler" eine hilfe ist, oder?

    ich habe übrigens auch gesagt, dass ich eher schlecht dem mädel, an das das prog geht, sagen kann sie soll sich pelleC installieren und das compilen.
    deshalb die frage nach diesen "normalen" exe-dateien, wie das halt geht dass sie sich das auf den pc tun kann und einfach installieren, ohne compiler rumtun etc.
    "mit einem compiler" ist halt da einfach keine antwort drauf 😉

    ich habe es mit pelleC versucht, und habe gepostet, was da schief ging, aber da ist keiner drauf eingegangen.

    genauso wie noch die frage offen ist, wieso meine clear-funktion nicht geht, die ihr mir empfohlen habt.

    ich hab auch nix dagegen wenn ihr über dinge diskutiert hier, aber es ist halt deprimierend wenn 10 posts kommen, aber keiner ist auf mich eingegangen 🤡



  • hdi-loggedOut schrieb:

    @supertux:

    ich lese ja, aber du meinst doch nicht ernsthaft dass "mit einem compiler" eine hilfe ist, oder?

    Deine Frage lautete: "Ich weiss noch immer nicht, wie ich ein Programm zu einer exe datei machen kann". Und das geht nur mit einem Compiler 😉

    hdi-loggedOut schrieb:

    ich habe übrigens auch gesagt, dass ich eher schlecht dem mädel, an das das prog geht, sagen kann sie soll sich pelleC installieren und das compilen.

    Neben den Binaries (EXE) wirst du die nötige Bibliotheken liefern müssen (sprich die DLLs). Was du brauchst ist also einen Installer, da kann dir google weiterhelfen. Einfach nach "free installer" oder sowas suchen. Google hat bei mir folgendes ausgespuckt:

    http://nsis.sourceforge.net/Main_Page
    http://www.jrsoftware.org/isinfo.php
    http://sourceforge.net/projects/spoon-installer

    Siehe http://www.thefreecountry.com/programming/setup.shtml für eine List mit freien Installern (wie gesagt, alles nur aus Google)

    hdi-loggedOut schrieb:

    ich habe es mit pelleC versucht, und habe gepostet, was da schief ging, aber da ist keiner drauf eingegangen.

    keine Ahnung, welcher Compiler pelleC verwendet. Aber vielleicht heißt dort __WIN32__ das Makro, was du brauchst. Benutze einen Debugger. Ansonsten hat win32-freak folgendes geschrieben:

    der hat wohl das 'WIN32' nicht automatisch definiert für consolen-programme. dazu gehst du auf project->project options->compiler->define preprocessor symbols und setzt da das WIN32 ein. bei den CCFLAGS (ganz unten) steht dann sowas wie: -Tx86-coff -Ot -W1 -Gd -Go -DWIN32. das -DWIN32 zeigt dir, dass WIN32 nun definiert ist und dann sollte es klappen.

    hdi-loggedOut schrieb:

    genauso wie noch die frage offen ist, wieso meine clear-funktion nicht geht, die ihr mir empfohlen habt.

    siehe eins oben

    hdi-loggedOut schrieb:

    ich hab auch nix dagegen wenn ihr über dinge diskutiert hier, aber es ist halt deprimierend wenn 10 posts kommen, aber keiner ist auf mich eingegangen 🤡

    Wir haben (wie ich bereits gesagt habe) schon dir geantwortet, was erwartest du denn noch von uns? Und nebenbei haben wir auch diskutiert wie sinnvoll bzw. sinnlos das Unix-fork ist, wo ist denn da das Problem?



  • nene also ich sagte ja es ist kein problem wenn ihr diskutiert.

    wir haben wohl einfach gerade eine verschiedene auffassung bezüglich der hilfe 😉

    ich fragte, wie man ein programm zu ner exe macht, du sagtest mit einem compiler.

    das ist zwar eine korrekt antwort von dir, aber das ist so wie wenn du mich fragst, wie man ein flugzeug landet, und ich sage dir: "mit einem flugzeug".

    verstehst du? ich meine ein compiler ist ein programm, bei so GUI-dingern vorallem noch eins mit sehr vielen funktionen.

    da ich mich damit nicht auskenne, müsste ich halt wissen was GENAU ich da machen muss 😉

    danke für die links mit den free installern, ich werde das jetzt mal hinkriegen.

    ps: das mit dem definieren von dem win32-makro in pelleC hatte ich missverstanden: ich dachte das müsste dann der user vom programm selber bei sich aufm windows-system machen, also pelleC installieren und das dann einstellen und compilen.

    ich versuch das jetz mal alles.



  • hdi-loggedOut schrieb:

    ich habe übrigens auch gesagt, dass ich eher schlecht dem mädel, an das das prog geht, sagen kann sie soll sich pelleC installieren und das compilen.
    deshalb die frage nach diesen "normalen" exe-dateien, wie das halt geht dass sie sich das auf den pc tun kann und einfach installieren, ohne compiler rumtun etc.
    "mit einem compiler" ist halt da einfach keine antwort drauf 😉

    doch, ist es. man braucht compiler/linker/ide/sonstwas nur für die programmerstellung (quellcode+libs zu einer exe machen). danach ist die 'exe' standalone lauffähig. entgegen dem was supertux sagte, brauchste einen installer nur für grosse programme, die noch dlls kopieren, verzeichnisse anlegen und registry-einträge machen usw. für kleine bis mittlere programme brauchste keinen installer. die benötigten library-funktionen können statisch in die exe gelinkt werden und die exe kann dann auf jeder windows-kiste laufen. einfach weitergeben ist gut ist's.
    🙂



  • ich sage nochmals:

    das ist zwar eine korrekt antwort von dir, aber das ist so wie wenn du mich fragst, wie man ein flugzeug landet, und ich sage dir: "mit einem flugzeug".

    ich will doch wissen, WIE das geht, ich sagte doch schon 10 mal dass ich davon keine ahnung habe 😞

    ich habe hier keinen knopf "mit nem compiler ne exe machen", versteht das doch!
    WIE mache ich mit einem compiler eine exe, und WIE binde ich da die libraries ein?



  • dann wäre die Richtige frage: Wie verwende ich einen Compilier? Und dazu gibt es von mir nur RTFM!

    Wie man einen Compiler verwendet, hängt natürlich vom Compiler ab: der GNU GCC wird andere Parameter haben als der von Microsoft. Die meisten IDEs kommen mit einem Kompilier, wo du nicht alle Optionen wissen musst, weil die IDE ein automatisches System zur Kompilierung (Makefile) haben.

    Welche Bibliotheken du einbinden musst, weiß ich doch nicht, kenn deinen Code nicht. *Das* musst *du* wissen, nicht wir. Und wie man sie einbindet, weiß ich nicht. Ich weiß nicht, welchen Kompiler du hast 😕

    entgegen dem was supertux sagte, brauchste einen installer nur für grosse programme,

    Egal wie klein ein Programm ist, wenn es ein dynamische Bibliothek benötigt, dann muss das Zielsystem diese Bibliothek ebenfalls haben. Deswegen nimmt da einen Installer, der die DLLs in die richtige Stelle kopiert usw und das hat mit der Größe eines Programms nichts zu tun. Wenn aber dein Programm keine dynamische Bibliotheken braucht, dann brauchst du auch keinen Installer, das ist ja klar.



  • doch, den hast du. bei pelles-c z.b. ist das ein rechteckiges kästchen mit punkten drin und darüber sind 3 pfeile. willst du uns nur veralbern oder bist du wirklich so blöd?
    🙂


Anmelden zum Antworten