Seite 1 von 1

Testkompilat an anderer Stelle ausführen

Verfasst: 10.01.2014 18:00
von Chimorin
Heyho,

ich bin mir sicher, dass es so etwas gibt, finde es aber einfach nicht in den Compileroptionen.
Ich würde gerne das von Purebasic erstellte Testkompilat in einem anderen Ordner erstellen lassen (Einem Unterordner).
Es könnte auch sein, dass ich das schon hinbekommen habe, aber die Exe kann trotzdem keine fremden DLLs öffnen; Kann das sein?

Gruß,

Banane

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 10.01.2014 20:46
von Sicro
Hallo Bananenfreak,

Compiler => Compiler-Optionen => Kompilieren/Starten:
  • Temporäres Executable im Quellcode-Verzeichnis erstellen <= wenn deine DLLs ebenfalls im Quellcode-Verzeichnis sind
  • Aktuelles Verzeichnis <= ansonsten hier das Verzeichnis angeben, in dem sich die DLLs befinden

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 11.01.2014 10:18
von Chimorin
Danke für deine Antwort Sicro.
Wie ich befürchtet hatte, habe ich das schon längst mit der richtigen Position ausgefüllt ^^
Somit war das nicht die Lösung. Virenscanner habe ich auch schon abgestellt, an dem kann es theoretisch auch nicht liegen.

EDIT:
Das Testkompilat liegt wie immer unter APPData\Local\Temp\ . Irgendwie funktioniert das nicht so ganz ^^

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 11.01.2014 11:27
von Sicro
Hast du den Quellcode bereits abgespeichert? Wenn er noch nicht abgespeichert ist und du führst diesen aus, wird immer das Temp-Verzeichnis als Ziel für das Kompilat genommen.

Hast du ein Projekt erstellt? Wenn ja, musst du natürlich die Compiler-Optionen im Projekt anpassen.

Ansonsten fallen mir im Moment keine weiteren Fehlerquellen ein.

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 12.01.2014 11:48
von Chimorin
Jop, ich habe ein Projekt erstellt und habe ein eigenes Ziel in den Compileroptionen als Standart eingesetzt.
Jop, ist abgespeichert, in einem Unterverzeichnis soll das Kompilat erstellt werden.
Ich schaue mal, ob ich nicht ein kleines Programm schreiben kann, dass den selben Fehler aufweist. Kann aber noch ein bisschen dauern...

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 12.01.2014 21:17
von Chimorin
Okay, ich habs jetzt (Nicht den Fehler ausgemerzt, aber einen Code).

Erstellt an einem Ort eurer Wahl eine "test.dll"- und eine "test.txt"-Datei. Nun ändert ihr in den Compiler-Optionen das aktuelle Verzeichnis auf eben diesen Ort.
Drückt F5 und staunt. Oder eben nicht, wenn es an meinem PC liegt. Bei mir bekomme ich beim ersten Versuch ein "Leider nicht" und bei der Textdatei ein "Juhu".
Scheint wohl ein Bug zu sein...

Code: Alles auswählen

EnableExplicit


Define.i file



file = OpenLibrary(#PB_Any, "test.dll")
Debug file
If file > 0
  Debug "juhu"
Else
  Debug "Funktioniert leider nicht."
EndIf


file = OpenFile(#PB_Any, "test.txt")
Debug file
If file > 0
  Debug "juhu"
Else
  Debug "Funktioniert leider nicht."
EndIf


End

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 12.01.2014 21:24
von ts-soft
Das ist leider normal so :wink:
Beim laden einer DLL wird das aktuelle (CurrentDirectory) ignoriert. Windows sucht nur im
Programmverzeichnis sowie in den Pfaden, die in der Path-Variable eingetragen sind!

Ich kompiliere immer im Source-Verzeichnis, habe das Problem also nicht, aber Du könntest
Dir einen Speziellen Ordner für Deine DLLs anlegen und diesen an die Path-Variable im System
anhängen.

Gruß
Thomas

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 13.01.2014 08:57
von Chimorin
Jop, das mache ich. Blöd ist nur, ich wollte mein Programm für x64 und x86 bereitstellen (Einfach ein anderer Übergeordneter Ordner). Das wird jetzt wohl doch so nichts. Naja, dann räume ich mal meine Struktur um.

Re: Testkompilat an anderer Stelle ausführen

Verfasst: 13.01.2014 09:09
von ts-soft
Dann nimm doch einfach einen absoluten Pfad, per Compilerdirektive, wenn z.B.
der Debugger an ist.