Testkompilat an anderer Stelle ausführen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Testkompilat an anderer Stelle ausführen

Beitrag 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
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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 ^^
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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...
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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
Bild

- formerly known as Bananenfreak -
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Testkompilat an anderer Stelle ausführen

Beitrag 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.
Bild

- formerly known as Bananenfreak -
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Testkompilat an anderer Stelle ausführen

Beitrag von ts-soft »

Dann nimm doch einfach einen absoluten Pfad, per Compilerdirektive, wenn z.B.
der Debugger an ist.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten