C# - Probleme bei der Nutzung des PAWN Compilers

  • C
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.CreateNoWindow = false;
    startInfo.UseShellExecute = true;
    startInfo.FileName = compilerPath2 + "\\pawncc.exe";
    startInfo.Arguments = "\"" + currentModePath + "\"";
    Process.Start(startInfo);

    Was ist daran falsch?
    Möchte schlicht und einfach einen PAWN Gamemode damit kompilieren.
    Im Pfad sind Leerzeichen. Liegt es daran? Wenn ja, wie kann ich dieses Problem umgehen?



    Danke im Voraus.

  • Ich benutze den Direktlink zur pwn, das sollte nicht das Problem sein.


    Das Problem ist, dass die Konsole ausgibt, dass die Datei nicht lesbar ist. Angegeben wird ein falscher Pfad, der bis zum ersten Leerzeichen korrekt ist und mit einem ".p" abschließt.


    Beispiel:


    Pfad: C://blub/bla blub/waynetrain/gamemode.pwn


    Ausgegeben wird als nicht lesbarer Pfad:
    C://blub/bla.p


    Daraus folgere ich, dass es am Leerzeichen liegt.

  • Du musst einen Ausgabepfad (-o) angeben. Das ganze sähe z.B. so aus:


    Java
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.CreateNoWindow = false;
    startInfo.UseShellExecute = true;
    startInfo.FileName = compilerPath2 + "\\pawncc.exe";
    startInfo.Arguments = currentModePath + " -o\"" + currentModePath + "\\output.amx\" -; -(";
    Process.Start(startInfo);


    Kostenlose Pawno Alternative / PAWN IDE -> PawnStar
    Mass Effect
    :love:

  • Das ist schon richtig. Mit deiner Methode gäbe es Compilererrors, da er das jeweils abschließende Anführungszeichen escaped und alles danach als weiterer String angesehen wird.
    Daher escape ich ein Anführungszeichen im String, damit es als Character angesehen wird und den Pfad umschließt.


    @Drasko
    Danke, das war mein Fehler.

  • Du musst einen Ausgabepfad (-o) angeben. Das ganze sähe z.B. so aus:


    Java
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.CreateNoWindow = false;
    startInfo.UseShellExecute = true;
    startInfo.FileName = compilerPath2 + "\\pawncc.exe";
    startInfo.Arguments = currentModePath + " -o\"" + currentModePath + "\\output.amx\" -; -(";
    Process.Start(startInfo);

    Ein Ausgabepfad ist optional.
    Standardmäßig wird der Eingabename verwendet, wobei .pwn durch .amx ersetzt wird.


    #Brotfischbaron


    In schā'a llāh