Kategorie Diskussion:Alias-Deklaration: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
(Keine Aliasdeklarationen gesondert aufführen)
Zeile 14: Zeile 14:
  
 
:::::"Stiefmütterlich" wollte ich die Funktion nun wirklich nicht behandeln. Eine Mehrfachkategorisierung kostet nur sehr wenig Speicher und bietet trotzdem die Möglichkeit, die Funktion schnell zu finden. Was hälst du [[CopyMemory|davon]]? <br>Ich bin jedoch nicht der Meinung, daß die Kategorie Alias-Deklaration komplatt verschwinden sollte.<br>--<tt style="background:#CCC">'''[[Benutzer:Axel Prignitz|Axel Prignitz]] <sup>('''[[Benutzer_Diskussion:Axel Prignitz|Diskussion]]''')</sup>'''</tt> <tt style="color:#050"></tt> 14:48, 15. Aug. 2008 (CEST)
 
:::::"Stiefmütterlich" wollte ich die Funktion nun wirklich nicht behandeln. Eine Mehrfachkategorisierung kostet nur sehr wenig Speicher und bietet trotzdem die Möglichkeit, die Funktion schnell zu finden. Was hälst du [[CopyMemory|davon]]? <br>Ich bin jedoch nicht der Meinung, daß die Kategorie Alias-Deklaration komplatt verschwinden sollte.<br>--<tt style="background:#CCC">'''[[Benutzer:Axel Prignitz|Axel Prignitz]] <sup>('''[[Benutzer_Diskussion:Axel Prignitz|Diskussion]]''')</sup>'''</tt> <tt style="color:#050"></tt> 14:48, 15. Aug. 2008 (CEST)
 +
 +
 +
:::::: Copymemory ist eindeutig eine Kernel-Funktion und diese Deklaration hat obendrein eine Sonderstellung. D.h. einerseits ist ist eine der am häufigsten verwendete Deklaration und sie wird zu 90% zusammen mit RtlMoveMemory verwendet. Andererseits gibt es auch eine Ambiguität, da CopyMemory (ohne Rtl) als eigenständige Funktion in der MSDN genannt wird. Laut diesem MSDN-Artikel entspricht CopyMemory Rtl'''Copy'''Memory. Auch aus diesem Grund ist eine spezielle Erklärung von CopyMemory erforderlich (der Beitrag ist in dieser Hinsicht noch unvollständig). CopyMemory wird aber eine der wenigen Alias-Deklarationen werden, wenn man mal davon absieht, dass es zu vielen String-Funktionen die A- und die W-Variante gibt. Bei Sendmessage z.B. würde man ja nicht behaupten, dass dies eine Alias-Deklaration ist, obwohl der echte Name in der Dll ja SendMessageA, bzw. SendMessageW lautet. Die Kategorie Alias-Deklaration ''könnten'' wir ''zusätzlich'' zur Kategorisierung durch die Dll nennen. Konsequenterweise müssten wir dann aber etlichen Deklarationen (also allen die das A, bzw. W beinhalten) diese zusätzliche Kategorie geben. Letzeres wäre ein Krampf.

Version vom 15. August 2008, 17:55 Uhr

Keine Aliasdeklarationen gesondert aufführen

Ich bin der Ansicht, dass Alias-Deklarationen nicht kategorisiert werden müssen. Mich interessiert als CopyMemory-Verwender nicht, ob dahinter eigentlich RTLMoveMemory steht, oder nicht. Außerdem wird niemand sich die Arbeit machen, und recherchieren, ob es sich um eine Aliasdeklaration handelt, oder nicht. Nils Thomsen 12:00, 15. Aug. 2008 (CEST)

CopyMemory war bereits als Seite vorhanden, ich habe nur nach einer passenden Kategorie dafür gesucht. Da CopyMemory keine Kernel-Funktion ist wollte ich sie nicht dort einsortieren.
Alias-Deklaration wollte ich nur dort kategorisieren, wo der gebräuchliche Name stark von dem Originalnamen abweicht. (nicht für FlootFill Alias FlootFillEx)
Axel12:17, 15. Aug. 2008 (CEST)
Wieso soll CopyMemory keine Kernelfunktion sein, wenn sie doch auf die kernel32.dll verweist? Nils Thomsen 13:04, 15. Aug. 2008 (CEST)
CopyMemory ist keine Kernelfunktion und verweist nicht auf kernel32.dll und kann von dort nicht importiert werden. CopyMemory ist nur der Name der Deklaration, über den die Funktion aus dem VB-Programm aufgerufen werden kann. Der tatsächliche Verweis erfolgt über den Alias-Namen RtlMoveMemory
Ich könnte in einem Programm auch folgende Deklaration verwenden:
  • Declare SpeicherKopieren Lib "kernel32.dll" Alias "RtlMoveMemory" . . .
und diese Funktion mit SpeicherKopieren aufrufen, dadurch würde SpeicherKopieren aber nicht zu einer Kernel-Funktion!
--Axel Prignitz (Diskussion) 13:58, 15. Aug. 2008 (CEST)
Das ist mir klar. Dennoch verweist sie auf die kernel32.dll. Ob es nun ein Aliasname ist, oder nicht, spielt dabei - finde ich - keine Rolle. CopyMemory ist ein sehr weit verbreiteter Aliasname und wohl weitaus gebräuchlicher, als RTLMoveMemory. Ich finde nicht, dass die DeKlaration der FunKtion so steifmütterlich in die Kategorie Aliasnamen verschoben werden sollte. Nils Thomsen 14:06, 15. Aug. 2008 (CEST)
"Stiefmütterlich" wollte ich die Funktion nun wirklich nicht behandeln. Eine Mehrfachkategorisierung kostet nur sehr wenig Speicher und bietet trotzdem die Möglichkeit, die Funktion schnell zu finden. Was hälst du davon?
Ich bin jedoch nicht der Meinung, daß die Kategorie Alias-Deklaration komplatt verschwinden sollte.
--Axel Prignitz (Diskussion) 14:48, 15. Aug. 2008 (CEST)


Copymemory ist eindeutig eine Kernel-Funktion und diese Deklaration hat obendrein eine Sonderstellung. D.h. einerseits ist ist eine der am häufigsten verwendete Deklaration und sie wird zu 90% zusammen mit RtlMoveMemory verwendet. Andererseits gibt es auch eine Ambiguität, da CopyMemory (ohne Rtl) als eigenständige Funktion in der MSDN genannt wird. Laut diesem MSDN-Artikel entspricht CopyMemory RtlCopyMemory. Auch aus diesem Grund ist eine spezielle Erklärung von CopyMemory erforderlich (der Beitrag ist in dieser Hinsicht noch unvollständig). CopyMemory wird aber eine der wenigen Alias-Deklarationen werden, wenn man mal davon absieht, dass es zu vielen String-Funktionen die A- und die W-Variante gibt. Bei Sendmessage z.B. würde man ja nicht behaupten, dass dies eine Alias-Deklaration ist, obwohl der echte Name in der Dll ja SendMessageA, bzw. SendMessageW lautet. Die Kategorie Alias-Deklaration könnten wir zusätzlich zur Kategorisierung durch die Dll nennen. Konsequenterweise müssten wir dann aber etlichen Deklarationen (also allen die das A, bzw. W beinhalten) diese zusätzliche Kategorie geben. Letzeres wäre ein Krampf.