Beim Ausführen eines Projektes bekomme ich des öfteren die
Fehlermeldung "Argumenttyp ByRef unverträglich", wenn ich einige
Funktionen aufrufe. Ich kann keinen Zusammenhang zwischen dem
Auftreten dieses Fehlers und der Arbeitsweise der Funktionen, des
Rückgabewertes, der Parameter oder sonst irgendetwas feststellen (was
nicht heissen soll, daß ein Zusammenhang ausgeschlossen ist).
Ich könnte jetzt sowohl im Aufruf der Funktion als auch in der
Funktion selbst (immer beides) definieren, daß der Parameter ByVal
übergeben wird, aber ich verstehe die Fehlermeldung an sich nicht.
Die MSDN und diverse Bücher erklären nur, wo der Unterschied zwischen
ByVal und ByRef ist, nicht aber, wo ByVal zwingend erforderlich ist
(was es ja manchmal zu sein scheint).
Kann mich bitte jemand aufklären?
Danke,
L.Barto
ByRef bedeutet, daß nur ein Verweiß übergeben wird, keine Kopie. Das
bedeutet, daß der Typ genau übereinstimmen muß. Wenn es z.B. Zahlen
sind, muß beides vom Typ Integer sein (oder halt andere Typen). Wenn Du
keine Variable übergibst, sondern direkte Werte, dann muß der Typ
ebenfalls stimmen. Du mußt die Zahl entweder erst in den richtigen Typ
konvertieren (Cxxxx) oder z.B. bei Integer ein % davor (oder war's
dahinter?) schreiben.
Grüße,
Kai
"L. Barto" schrieb: