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/)
-   -   Das Ex in der Funktion? (https://www.delphipraxis.net/178319-das-ex-der-funktion.html)

Popov 2. Jan 2014 00:49

AW: Das Ex in der Funktion?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1241680)
Wenn man beide Funktionen vergleicht, dann kommt man evtl. auch auf die gesuchte Bedeutung von Ex ;)

Mein alter Lehrer fragte mich mal: Wissen Sie was der Unterschied zwischen einem Arzt und einem Anwalt ist? Der Arzt - sage er - muss alles wissen, der Anwalt muss wissen wo er es nachlesen kann.

Dass Ex Extended bedeutet, war mir schon irgendwie klar. Das habe ich auch in dem Halbsatz im ersten Beitrag angedeutet: "also um eine Erweiterte Funktion". Auf der anderen Seite man kann immer eine Funktion erweitern und noch mal erweitern und nochmal. Nur eine ShellExecuteExExEx gibt es wohl nicht. Bedeutet das, dass es Schluss mit dem Erweitern ist? Ein mal Schrott basteln und ein mal verbessern? Also die logischste Antwort kam bisher von sx2008.

Wie gesagt, es ist keine wichtige Frage, es ging nur darum nach welchen Kriterien Ex vergeben wird. Einfach nur so.

Also den Text von ShellExecute habe ich mehr oder weniger schon früher gelesen.

himitsu 2. Jan 2014 00:56

AW: Das Ex in der Funktion?
 
Nicht zu vergessen das A und W in der Funktion.

Sir Rufo 2. Jan 2014 01:02

AW: Das Ex in der Funktion?
 
Ich weiß jetzt nicht warum MSDN-Library durchsuchenShellExecute Schrott sein soll und MSDN-Library durchsuchenShellExecuteEx die richtige Version (oder auch umgekehrt).

Beide habe ihre Daseinsberechtigung, denn ich sehe sehr oft die Verwendung von MSDN-Library durchsuchenShellExecute (einfacher Aufruf) und seltener MSDN-Library durchsuchenShellExecuteEx.

IdR ist eine Funktion ohne Ex eine Vereinfachung für den schnellen Aufruf ohne großen Schnickschnack und die Funktion mit Ex mit allem Schniddeldibupp aber auch zumeist "umständlicherem" Aufruf (bei MSDN-Library durchsuchenShellExecuteEx muss ein Record gefüllt werden, der als Parameter übergeben wird).

Zudem gibt es bei den API keine Möglichkeit der Überladung (
Delphi-Quellcode:
overload
), somit muss halt ein anderer Name her.

Furtbichler 2. Jan 2014 09:38

AW: Das Ex in der Funktion?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1241696)
Ich weiß jetzt nicht warum MSDN-Library durchsuchenShellExecute Schrott sein soll und MSDN-Library durchsuchenShellExecuteEx die richtige Version (oder auch umgekehrt).

Ich weiß jetzt auch nicht, wer das behauptet. Allerdings ist es aus softwaretechnischer Sicht Quatsch, wenn eine API mehrere quasi overloaded Versionen ein und derselben Funktion bereithält. Die Bequemlichkeit kann sich der Programmierer dann selbst basteln.

Microsoft hat hier entweder nachträglich die -Ex Versionen hinzugefügt oder vorausschauend etwas convinience bereitgestellt (ich glaube, die Story von sx2008 entspricht der Wahrheit). Die -Ex Versionen machen aus deshalb Sinn, weil hier die Funktionalität nachträglich erweitert werden kann, ohne die Signatur zu ändern=> Programme bleiben weiterhin kompilierbar.

Insofern ist -nachträglich betrachtet- nur 'ShellExecute' Quatsch bzw. überflüssig.

Uwe Raabe 2. Jan 2014 10:11

AW: Das Ex in der Funktion?
 
Zitat:

Zitat von Furtbichler (Beitrag 1241708)
Programme bleiben weiterhin kompilierbar.

Insofern ist -nachträglich betrachtet- nur 'ShellExecute' Quatsch bzw. überflüssig.

Wenn man denn bei einem Wechsel der Windows(-API)-Version immer alle Programme auf die neue API kompilieren möchte bzw. kann.

Der Vorteil der Beibehaltung des alten Namens mit seiner Signatur bedeutet ja auch, daß bereits kompilierte Programme weiterhin mit der neuen API laufen. Andernfalls hätten wohl einige unserer Mitglieder hier schon seit geraumer Zeit heftige Probleme ihr Delphi 5 noch unter einem halbwegs aktuellen Windows laufen zu lassen.

Umgekehrt erhöht die Verwendung der alten Funktion die Wahrscheinlichkeit, daß die Anwendung auch noch auf einem älteren Windows läuft.

Popov 2. Jan 2014 19:38

AW: Das Ex in der Funktion?
 
Man kann also abschließend sagen, dass es nichts spezielles bedeutet, wie z. B. bei A und W, sondern, dass es eine andere Version einer Funktion ist, ob man später entdeckt hat, dass da etwas fehlt, oder schon von Anfang an eine einfache und eine komplexere Funktion anbieten wollte.

Das wollte ich nur wissen :)

Furtbichler 2. Jan 2014 20:41

AW: Das Ex in der Funktion?
 
@Uwe Raabe:
Du hast -vermutlich unwissentlich- zwei konträre Aussagen irrtümlich und falsch zusammenhängend zitiert.
1. Die Beibehaltung der Original-Signatur gewährleistet die Abwärtskompatibilität.
2. Aus Sicht eines API-Architekten ist Originalsignatur Quark, weil Redundanz in einer API nichts zu suchen hat.

Uwe Raabe 2. Jan 2014 23:33

AW: Das Ex in der Funktion?
 
Zitat:

Zitat von Furtbichler (Beitrag 1241841)
@Uwe Raabe:
Du hast -vermutlich unwissentlich- zwei konträre Aussagen irrtümlich und falsch zusammenhängend zitiert.

Wenn ich deinen Post jetzt unter Berücksichtigung deines Kommentars nochmal lese, kann man das tatsächlich anders interpretieren. Das ist halt das Problem bei natürlicher Sprache - sie ist nicht kontextfrei und oft mehrdeutig. :wink:


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

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 by Thomas Breitkreuz