Autor | Thema: Bug bei Bereichsvariablen ??????? | | Datum:17.01.02 13:01 
(b.kuenzel@chello.at) | |
Hallo,
die Adresse von Variablen wird in die Bereichsvariable nicht eingetragen, das gleiche ist auch bei manchen DLLs wenn man von einer Funktion direkt in die Bereichsvariable übergeben will.
Beispiel:
Declare Test#,T$,ADR&
Dim Test#,10
Clear Test#
T$="Test"
ADR&=ADDR(T$)
Long Test#,0 = ADDR(T$)
Print ADR&
Print Long(Test#,0)
WaitInput
Dispose Test#
MFG
Bernhard
|
| | Datum:17.01.02 20:17 
(mrk@mrk-soft.de) | |
Hi,
Beachte, das die Funktion ADDR vor Version 7.0 ein
anderes ergebinss brachte, (also alles vor 6.6),
erst ab Version 7.0 ist mit ADDR eine übergabe von
String-Adressen möglich.
Siehe dazu auch in der Profan-Hilfe.
Thorsten
|
| | Datum:17.01.02 21:01 
(b.kuenzel@chello.at) | |
Hallo Thorsten,
habe Profan 7.0e
wie Du bei meinem Beispiel siehst wird die Adresse in der LongInteger Variable richtig eingetragen, nur in der Bereichsvariable wird überhaupt nichts übernommen. Du kannst vor der Adreßübergabe in Long Test#,0=22 eintragen dann steht nach der Adreßübergabe immer noch 22 drinnen.
MFG
Bernhard
|
| | Datum: 18.01.02 00:32 
(rgh-soft@t-online.de) | |
Hallo Bernhard,
dieses eltsame Phänomen ist schon länger bekannt, aber ich habe trotz aufwändiger Suche nicht herausgefunden, woran es liegen könnte. Das Ermitteln der Speicheradresse klappt ja und das Abspeichern in eine Longint-Variable auch. Also das Auslesen scheint fehlerfrei zu sein.
Das Speichern einer Longintvariablen im Bereich klappt ja auch. Also vermutlich auch hier kein Fehler.
Und dazwischen gibt es eigentlich nichts. Ich fürche, man wird vorerst noch den Workaround über die Longint-Variable nehmen müssen ... Sorry!
|
|
|