Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ShellExecute: Einsprungpunkt nicht gefunden! - HILFE. (https://www.delphipraxis.net/35247-shellexecute-einsprungpunkt-nicht-gefunden-hilfe.html)

PremiumPils 4. Dez 2004 11:44


ShellExecute: Einsprungpunkt nicht gefunden! - HILFE.
 
Hallo Leute,

ich habe gerade von einem Bentzer einen Fehlerbildschirm zugeschickt gekommen. Wenn der Benutzer wie angedeutet auf diese Button klickt wird die Funktion aufgerufen:

Delphi-Quellcode:
unit UForm;
...
procedure TUForm.UBTN_StartClick(Sender: TObject);
begin
  ProgrammAusfuehren(MyTBUA.Pfad+'tbupdate.exe','',Application.handle);
end;

...

unit MyFunctions;
...
procedure ProgrammAusfuehren(prog, params: string; HandleNow: HWND);
begin
  ShellExecute(HandleNow, 'open', PChar(prog), PChar(params), nil, SW_NORMAL);
end;
http://tbupdate.ecerberus.de/screenshoot_00030.gif

Der Fehler ist bisher bei einem Bnutzer aufgetreten - bei anderen Nutzern funktioniert dies alles ohne Probleme. Hab schon nach dem OS gefragt - Feedback steht aus. Aber Grundsätzlich, wo kann da der Fehler liegen?

Grüße,
PremiumPils

Bernhard Geyer 4. Dez 2004 11:55

Re: ShellExecute: Einsprungpunkt nicht gefunden! - HILFE.
 
Wo der Fehler liegt ist klar: In einer DLL wurde eine erwartete hart gebundene Funktion nicht gefunden und der Programm-Loader von Windows hat abgebrochen und zeigt die fehlende Funktion an.

Warum dieser Fehler auftritt ist noch unklar:
- Das Betriebssystem ist sehr alt (z.B. Win9x) und dort gibt es diese Funktion in dieser DLL nicht
- Eine übereifriges Installer-Programm hat eine veraltete Version dieser DLL installiert.

Du solltest nicht nur nach der Version des BS fragen, sondern auch nach:
- IE-Version
- Version der DLL (am besten alle Dateiinfos)

PremiumPils 4. Dez 2004 12:06

Re: ShellExecute: Einsprungpunkt nicht gefunden! - HILFE.
 
So, folgende Informationen konnte ich nun auftreiben:

Microsoft Windows XP Professional Service Pack 2 (Build 2600)
Version 5.1 (Build 2600) SP 2.0, Service Pack 2
System directory: C:\WINDOWS\system32
Windows directory: C:\WINDOWS
IE Version: 6.0.2900.2180 Build: 62900.2180
COMCTL32.DLL Version: 6.0
ProductName (from registry): Microsoft Windows XP
CurrentVersion (from registry): 5.1


Die "CFGMGR32.DLL" welche unter "C:\windows\system32" zu finden ist, hat - wie bei mir auch folgende Daten:

DateiVersion:5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
Version:5.1.2600.2180
Sprache: Englisch (USA)


Ich hab jetzt schon so gehofft, dass der Fehler da lag - aber nun ist es die Suche nach der Nadel im Heuhaufen. Was könnte man noch hinterfragen?

Danke schon mal für die Bemühungen!

Bernhard Geyer 4. Dez 2004 12:55

Re: ShellExecute: Einsprungpunkt nicht gefunden! - HILFE.
 
Sind evtl. noch andere "CFGMGR32.DLL" auf dem Rechner vorhanden (die evtl. aufgrund des Suchpfades früher verwendet werden)?
Sonst fällt mir aktuell nichts mehr ein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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