Ach ja, schon lange nichts mehr mit PB gemacht und schon wieder vieles vergessen.
Der erste Teil des Codes ist Variablendeklaration. Ich mache das nicht so gerne on the fly.
Nach der Deklaration öffne ich in Zeile 76 die DLL PviCom.dell.
Geht das klar setze ich lib_laden_ok auf 1 und in Zeile 87 wird eine Init-Funktion aufgerufen.
Geht auch das klar wird die Procedure AnmeldenPvi() aufgerufen.
Diese wird auch korrekt abgearbeitet. Egal ob ich einen Fehler provoziere oder nicht (also egal welcher Weg durch die if Abfrage genommen wird).
Ich bekomme immer die Ausgabe aus Zeile 70.
Jetzt sollte das Programm doch eigentlich in Zeile 89 Weitermachen (direkt nach AnmeldenPvi() ) oder?
Das Programm kommt dort aber nicht an und bleibt ohne Fehlermeldung stehen.
Wo ist mein (Denk) Fehler?
Grüße hL
Code: Alles auswählen
; *****************************************************************************
;* *
;* Online Verwaltung von User Rezepten *
;* *
;* Beginn 22.04.2009 *
;* *
;* Version 0.0.0.1 *
;* Stand: 27.04.09 *
;* *
;* Autor: heiße Luft *
;******************************************************************************
; Deklaration
Lib_laden_ok.b = 0 ; wird gesetzt wenn PviCom.dll gefunden und geöffnet wurde
Global Quit.b = 0 ; wird gesetzt (1) wenn das Programm beendet werden soll
Define.l Event, WindowID, GadgetID, EventType, MenuID
Global Adresse.l
Global RPV1.w, RPV2.w, RPV3.w, RPV4.w, WPV1.w, WPV2.w, WPV3.w, WPV4.w, BR_SIM.b
Global ObjectPath.s,ObjectPath_PV1.s,ObjectPath_PV2.s,ObjectPath_PV3.s,ObjectPath_PV4.s
Global LPARAM.l, WPARAM.l
Global WPV1_S.s,WPV2_S.s,WPV3_S.s,WPV4_S.s
Global Meldung1.s
Enumeration
#RPV1
#RPV2
#RPV3
#RPV4
#Meldung
#WPV1
#WPV2
#WPV3
#WPV4
#But_Lesen
#But_Schreiben
#But_Sim
#But_Beenden
EndEnumeration
;PVI VAriablen
Global errNum.l = 0 ; Fehlernummer PVI
Global hPvi.l ; für Funktion PviLink Instanzhandel
;Hilfsvariablen für die Etwicklung, Kann nach Fertigstellung glöscht werden
Timer.l = 0
RPV1 = 1
RPV2 = 2
RPV3 = 3
RPV4 = 4
Procedure AnmeldenPvi()
If errNum = CallFunction(0,"PviLink",hPvi,"Pvi","0",1,"0")
Debug errNum
Debug "Anmeldung funktioniert"; Meldung1 = "Anmeldung funktioniert"
Else
Debug "Can't link to PVI object!"
Debug errNum
;Meldung1 ="Anmeldung fehlgeschlagen"
Quti = 1
EndIf
Debug "procedure ende"
EndProcedure
; PviCom.dll öffnen und initialisieren
If OpenLibrary(0,"PviCom.dll")
lib_laden_ok = 1
EndIf
If lib_laden_ok = 0
Meldung1 = "dll konnte nicht geladen werden"
Else
Meldung1 = "dll wurde geladen"
Adresse = GetFunction(0,"PviInitialize") ; Adresse der Funktion PviInitialize holen
ComTimeout.l = 200 ; Kommunikations Timeout für Den PVI Manager in Sekunden
RetryTime.l = 200 ; Wiederholungszeit für PVICOM Anwedermeldung in Sekunden
If errNum = CallFunctionFast(Adresse,ComTimeout, Retrytime,"0",0) ; PVI Manager initialisieren
AnmeldenPvi()
Debug "zurück in Schleife"
EndIf
EndIf
; Hauptprogramm
If OpenWindow(0,0,0,640,480,"Rezeptverwaltung",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget)