![]() |
CreateProces findet eine Programmbibliothek nicht
Bin neu hier.
Ich habe folgendes Problem: An meinem Laptop habe ich in Delphi den Aufruf von AutoCAD mittels CreateProces implementiert. Es Funktioniert einwandfrei. Am Desktop bekomme ich bei der Ausführung von CreateProces folgende Fehlermeldung: acad.exe - Komponente nicht gefunden Die Anwendung konnte nicht gestartet werden, weil ac1st16.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben. An beiden Rechnern ist identisch: 1. Windows XP 2. Delphi 7 3. AutoCAD 4. Die angeblich fehlende Bibliothek befindet sich im Verzeichnis: C:\Programme\Gemeinsame Dateien\Autodesk Shared Nach der Neuinstallation von AutoCAD hat sich nichts geändert. Also, was könnte es sein? Vielen Dank in Voraus. Toni |
Re: CreateProces findet eine Programmbibliothek nicht
Steht der Pfad in der PATH-Variable?
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Sollte sie nicht bei der Installation gesetzt werden? |
Re: CreateProces findet eine Programmbibliothek nicht
In den Eigenschaften des Arbeitsplatzes-> Umgebungsvariablen
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
|
Re: CreateProces findet eine Programmbibliothek nicht
Es könnte auch eine Datei) z.B. Dll) sein, von dem ac1st16.dll abhängt. Schau sie dir mal mit dem DependencyWalker an
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Toni |
Re: CreateProces findet eine Programmbibliothek nicht
1) Ist das nun ein Delphiproblem oder ein allgemeines? Also tritt der Fehler nur beim Aufruf von CreateProcess auf oder auch wenn du das Programm per Doppeklick öffnest?
2) Existieren die bemängelten Dateien auf dem Rechner? |
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Object-Pascal / Delphi-Language" nach "Windows 9x / ME / 2000 / XP / 2003 / Vista / 7" verschoben.
Kein Sprachproblem |
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Die bemängelte Datei existiert auf beiden Rechnern. Durch das DependencyWalker habe ich festgestellt, dass eine untergeordnete Bibliothek auf dem PC nicht vorhanden war. Das Kopieren dieser Datei auf den PC hat leider Nichts gebracht. |
Re: CreateProces findet eine Programmbibliothek nicht
Wenn das so ist hast du vermutlich beim CreateProcess nicht das WorkingDirectory angegeben. Und in der Verknüpfung über die du das Programm sonst startest steht sicher das richtige Arbeitsverzeichnis drin.
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Die Command Line ist identisch: 'C:\Programme\...\acad.exe D:\Data\...\Zeichnung.dxf' Diese Comand Line wird im cmd-Window (als DOS-command) fehlerfrei ausgeführt. |
Re: CreateProces findet eine Programmbibliothek nicht
Hast du denn schon probiert bei CreateProcess das korrekte Arbeitsverzeichnis anzugeben?
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Delphi-Quellcode:
PCmd ist die oben genannte Kommandozeile.
Ret := CreateProcess(nil,
PCmd, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, Processinfo); Soll ich als Arbeitsverzeichnis das Programmverzeichnis oder das Verzeichnis mit den Daten angeben? Welches Parameter ist dies? Was ich nicht geschrieben habe, CreateProcess liefert beim o.g. Fehler kein Error Code (also, Ret ist True). [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: CreateProces findet eine Programmbibliothek nicht
Hier kannst du es nachlesen:
![]() Der Parameter welcher angegeben werden sollte lautet: lpCurrentDirectory |
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
|
Re: CreateProces findet eine Programmbibliothek nicht
Du musst den Parameter lpEnvironment initialisieren.
|
Re: CreateProces findet eine Programmbibliothek nicht
Welchen Wert hast du denn für das CurrentDirectory angegeben? Das gleiche wie in der Verknüpfung über die du normalerweise das Programm startest?
@Dezipaitor: Muss man das angeben? Laut MSDN: Zitat:
|
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
C:\Programme\Gemeinsame Dateien\Autodesk Shared\ Das Problem liegt offensichtlich darin, dass beim Programmaufruf über CreateProces der Pfad mit den Bibliotheken nicht bekannt ist. Kann es sein, dass das CreateProcess die PATH Variable nicht benutzt? Dies wäre die einzige Erklärung, da ich das Programm direkt problemlos aufrufen kann. Es bleibt aber unerklärbar warum es am Laptop funktioniert. Also, warum CreateProcess den "shared" Pfad (Gemeinsame Dateien) am Laptop durchsucht und am PC nicht? Darf man als CurrentDirectory die PATH Variable angeben? |
Re: CreateProces findet eine Programmbibliothek nicht
Liegt die DLL auf der einen Seite vllt zusätzlich im Programmverzeichnis?
|
Re: CreateProces findet eine Programmbibliothek nicht
Schreib bitte mal, ob dieser Code funktioniert bei deinem Problem:
![]() |
Re: CreateProces findet eine Programmbibliothek nicht
Zitat:
Wie eigentlich zu vermuten war, lag die Ursache nicht in der falschen Nutzung von CreateProces, sondern in einem Fehler in der Delphi - Umgehbung. Also, ich habe das Environment in Delphi untersucht und festgestellt, dass unter Tools/Environment Options/Environment Variables die Variable Path überschrieben wurde. Es war eine Leiche (ich kann mich nicht mehr errinern wann und warum sie entstanden ist). In dieser Leiche var der Pfad ...\Autodesk Share nicht enthalten. Die Leiche ist vor der Installation von AutoCAD entstanden und wurde natürlich bei der Installation von AutoCAD nicht angepasst. Vielen Dank allen die mir bei der Analyse geholfen haben. Toni |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 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