Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kleine Asm-IDE -> will nicht linken (https://www.delphipraxis.net/51375-kleine-asm-ide-will-nicht-linken.html)

SebE 11. Aug 2005 08:22


Kleine Asm-IDE -> will nicht linken
 
Hi, ich will mir eine KLEINE Assembler-IDE basteln.
Also wie ein kleiner Editor aufgebaut.
Ich verwende den MS-Assembler (MASM)

PROBLEM:
Ich habe einen Button zum Assemblieren:

Delphi-Quellcode:
procedure TfmMain.AssemblierenClick(Sender: TObject);
begin
ShellExecute(Handle, nil, PChar(AppFilePath + ASM_FILE_NAME), PChar(TSynTabSheet(PageControl.ActivePage).FileName), nil, sw_ShowNormal);
end;
AppFilePath => Application.ExeName
ASM_FILE_NAME => Pfad des Assemblers

Der LINKER liegt im gleichen Verzeichnis, wie der Assembler.

jetzt kommt beim Assemblieren immer die Meldung: LINK.EXE konnte nicht gefunden werden.

Der Assembler sucht den Linker immer in dem Verzeichnis, wo man sich gereade befindet, dh. ich müsste, wie bei "cd <Pfad>" im cmd.exe, bevor ich den Assembler aufrufe in das Verzeichnis wechseln.

Wie mache ich das??

Speedmaster 11. Aug 2005 08:43

Re: Kleine Asm-IDE -> will nicht linken
 
Hast dir mal den String ausgeben lassen?

SebE 11. Aug 2005 08:47

Re: Kleine Asm-IDE -> will nicht linken
 
Welchen String?

Speedmaster 11. Aug 2005 08:53

Re: Kleine Asm-IDE -> will nicht linken
 
Zitat:

Zitat von SebE
Welchen String?

Den String:
Code:
[color=#0000ff]AppFilePath + ASM_FILE_NAME[/color]

SebE 11. Aug 2005 08:55

Re: Kleine Asm-IDE -> will nicht linken
 
Ja, das ist der Pfad vom Assembler mit Namen -> den rufe ich ja auf (das funktioniert auch)
Der Assembler ruft dann den Linker auf -> FEHLER, da er ihn im falschen Verzeichnis sucht

hab mir mal "GetDir(0,s)" ausgeben lassen -> Verzeichnis, indem der ASM-Code gespeichert ist.

Ich brauch eigentlich nur einen Befehl, wie ich das Verzeichnis wechseln kann.
Wie "cd" in cmd.exe

Flocke 11. Aug 2005 08:56

Re: Kleine Asm-IDE -> will nicht linken
 
Das Problem wird sein, dass ShellExecute nicht das aktuelle Verzeichnis wechselt. Mach' den Aufruf mal so:
Delphi-Quellcode:
olddir := GetCurrentDir;
try
  SetCurrentDir(AppFilePath);
  // .. dein Code
finally
  SetCurrentDir(olddir);
end;

SebE 11. Aug 2005 08:59

Re: Kleine Asm-IDE -> will nicht linken
 
Delphi-Quellcode:
SetCurrentDir(AppFilePath);
Das hab ich gesuch -> funzt einwandfrei

DANKE, er assembliert wunderbarfein

Boombuler 11. Aug 2005 09:12

Re: Kleine Asm-IDE -> will nicht linken
 
Sonst hätte es:
Delphi-Quellcode:
ShellExecute(Handle, nil, PChar(AppFilePath + ASM_FILE_NAME), PChar(TSynTabSheet(PageControl.ActivePage).FileName), PChar(AppFilePath), sw_ShowNormal);
Sicherlich auch getan... da ShellExecute einen Parameter für das Verzeichnis bereitstell in dem es Ausgeführt werden soll...

Greetz
Boombuler

Edit: PChar vergessen *rotwerd*


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz