PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei Parameterübergabe



Jörn Arne
21.06.2006, 12:46
Hallo!


Vor kurzem habe das OS 2.03 auf meine C-Control gespielt (von 2.02) und jetzt treten Probleme bei Funktionsaufrufen auf.
Wenn ich mehr als einen Paramerter übergeben möchte, arbeitet die Unit nicht mehr richtig

also FUNCTION a (x as byte)
....

funktioniert noch aber bei

FUNCTION b(x as byte, y as byte)
...

klappt es nicht mehr.


Ich bin dankbar für jede Hilfe!

Gruß
Jörn

Tappi
21.06.2006, 17:02
Trat der Fehler erst nach dem Update auf? Welche Compiler Version verwendest Du?

Jörn Arne
21.06.2006, 17:29
Hallo!

Ehrlich gesagt weiß ich nicht, ob der Fehler vorher schon aufgetreten ist, diese Unit verwende ich nur zum Experimentieren.

Ich verwende BASIC++ 2.1.8
bpp.exe 2.1.0.228

Gruß
Jörn

Tappi
21.06.2006, 19:12
Hmmm also ich habe mir der gleichen Version hier keine Probleme. Poste doch mal das Programm.

Jörn Arne
21.06.2006, 19:28
Also die einfachsten Routinen funktionieren nicht:

FUNCTION ADDBYTE(a as BYTE,b as BYTE)
RETURN a+b
END FUNCTION


PRINT "ERGEBNIS:" & ADDBYTE(13,26)
;---------------------------------------------

als Ergebnis stand im Terminalfenster

RGEBNIS:13

Im Terminalfenster kam das E auch nicht mit an, nur RGEBNIS:13

Tappi
21.06.2006, 19:31
FUNCTION ADDBYTE(a as BYTE,b as BYTE)
RETURN a+b
END FUNCTION

lcd.init
lcd.clear
lcd.PRINT "ERGEBNIS:" & ADDBYTE(13,26)
lcd.off

Bei mir steht auf dem Display 39.

Jörn Arne
21.06.2006, 19:32
Das klappt bei mir leider nicht

Tappi
21.06.2006, 19:59
Naja der Fehler muss irgendwo anders liegen. An der Parameterübergabe liegt es nicht.

Dierk
21.06.2006, 22:30
Hi Jörn,
es bringt wahrscheinlich nicht viel Dein Problem in alle möglichen Foren zu schreiben. Entweder ist Deine Unit wirklich kaputt (fast unwahrscheinlich) oder es stimmt irgendetwas anderes nicht.
Probier doch mal dieses Programm aus. Was kommt dabei heraus?


define i as byte

FUNCTION ADDBYTE(a as BYTE,b as BYTE)
RETURN a+b
END FUNCTION


for i= 1 to 5
PRINT "ERGEBNIS:" & ADDBYTE(i,40)
next

Print 5+30 'Funktioniert eigentlich ne Addition

Jörn Arne
22.06.2006, 09:54
Hallo!

Vielen Dank für eure Antworten!

Ich habe jetzt nun mal das Testprogramm von Dierk geladen und zwar mit BASIC++2006 2.1.8
Resultat:

ERGEBNIS:41
ERGEBNIS:42
ERGEBNIS:43
ERGEBNIS:44
ERGEBNIS:45
35

->Ich war Überrascht, so wie es sein soll

Es ist nun so, dass ich meine Projekte an einem anderen PC erstelle, als diesen und in die jeweiligen Controls lade...
An den bin ich mit dem selben Code gegangen und habe das Projekt geladen
Resultat:

RGEBNIS:1
ERGEBNIS:2
ERGEBNIS:3
ERGEBNIS:4
ERGEBNIS:5
35
->Der gewohnte Fehler

Scheinbar sind die Compiler Versionen nicht auf dem gleichen Stand, das werde ich nun ändern.

Ich danke euch allen für eure Hilfe und eure Gedult!!