Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ShellExecute 42, GetLastError 126 (https://www.delphipraxis.net/192980-shellexecute-42-getlasterror-126-a.html)

himitsu 8. Jun 2017 17:39

AW: ShellExecute 42, GetLastError 126
 
Zitat:

Zitat von Zacherl (Beitrag 1373860)
Im Erfolgsfalle ist der Wert von MSDN-Library durchsuchenGetLastError nämlich immer undefiniert.

Undefiniert nicht.
Der Wert passt ja definitiv zum letzten Fehler, irgendeiner vorher aufgerufenen WinAPI-Funktion, bzw. vom letzten SetLastError.

Zacherl 8. Jun 2017 18:15

AW: ShellExecute 42, GetLastError 126
 
Zitat:

Zitat von himitsu (Beitrag 1373914)
irgendeiner

Das würde ich ja schon als ziemlich undefiniert bezeichnen :P Vor allem, wenn der letzte API Aufruf erfolgreich war, man aber nur auf
Delphi-Quellcode:
GetLastError
!= 0 prüft, gibt es massive Probleme.

jaenicke 8. Jun 2017 19:23

AW: ShellExecute 42, GetLastError 126
 
Man kann vorher auch SetLastError benutzen um das zu vermeiden.

himitsu 8. Jun 2017 20:56

AW: ShellExecute 42, GetLastError 126
 
Zitat:

Zitat von jaenicke (Beitrag 1373919)
Man kann vorher auch SetLastError benutzen um das zu vermeiden.

Jain.

Laut Definition gibt diese API nur einen LastError zurück, wenn das Result sagt, dass was kaputt ist.

Jetzt kann diese API aber intern weitere APIs aufrufen und Diese auch usw.
Aber nur weil eine der internen APIs einen Fehler meldete, heißt das noch lange nicht, dass "unsere" API auch 'nen Fehler liefert. (die kann ja intern noch einen alternativen Weg gehen, oder so)

Tja, wenn du vorher z.B. SetLastError(NO_ERROR) nutzt und hinterher der GetLastError was Anderes sagt, dann hat das rein garnichts zu sagen, so lange das Result sagt "ich bin OK".

jaenicke 8. Jun 2017 21:05

AW: ShellExecute 42, GetLastError 126
 
Ich wollte damit auch nicht sagen, dass man das so machen sollte.

hoika 8. Jun 2017 21:13

AW: ShellExecute 42, GetLastError 126
 
Hallo,
Thema ist beendet, ich hatte ja SW_HIDE (0) übergeben.

Danke !


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.
Seite 2 von 2     12   

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