![]() |
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:
AppFilePath => Application.ExeName
procedure TfmMain.AssemblierenClick(Sender: TObject);
begin ShellExecute(Handle, nil, PChar(AppFilePath + ASM_FILE_NAME), PChar(TSynTabSheet(PageControl.ActivePage).FileName), nil, sw_ShowNormal); end; 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?? |
Re: Kleine Asm-IDE -> will nicht linken
Hast dir mal den String ausgeben lassen?
|
Re: Kleine Asm-IDE -> will nicht linken
Welchen String?
|
Re: Kleine Asm-IDE -> will nicht linken
Zitat:
Code:
[color=#0000ff]AppFilePath + ASM_FILE_NAME[/color]
|
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 |
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; |
Re: Kleine Asm-IDE -> will nicht linken
Delphi-Quellcode:
Das hab ich gesuch -> funzt einwandfrei
SetCurrentDir(AppFilePath);
DANKE, er assembliert wunderbarfein |
Re: Kleine Asm-IDE -> will nicht linken
Sonst hätte es:
Delphi-Quellcode:
Sicherlich auch getan... da ShellExecute einen Parameter für das Verzeichnis bereitstell in dem es Ausgeführt werden soll...
ShellExecute(Handle, nil, PChar(AppFilePath + ASM_FILE_NAME), PChar(TSynTabSheet(PageControl.ActivePage).FileName), PChar(AppFilePath), sw_ShowNormal);
Greetz Boombuler Edit: PChar vergessen *rotwerd* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz