Aktuelle Zeit: 11.12.2018 01:41

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: ComLib_PB4 mit PB 4.20 (beta 2)
BeitragVerfasst: 29.03.2008 18:27 
Offline

Registriert: 08.02.2007 08:18
Hallo zusammen,

habe im Zusammenspiel ComLib_PB4 mit PB 4.20 (beta 2) folgendes Problem festgestellt:

Beim Auslesen eines Rückgabewertes aus VBS kommt es zu generell zu einem "Invalid memory access.(read error at adress 0)".
Allerdings nur, wenn das Ganze aus einer Procedure aufgerufen wird.
(s. u.a. SampleCode)
Weitere Anmerkungen:
- unter PB 4.0 läuft das Beispiel problemlos
- gleichen Fehler gibt es auch mit der JHRegistry_420 LIB (beim ausLESEN von Registrywerten)
Mache ich irgendetwas falsch ?
Ist die MemoryVerwaltung unter PB 4.2 grundlegend geändert worden ?
Oder ist es ein Bug ?
Da ich die ComLib vielfach benutze, bin für jeglichen Hinweis dankbar.

Gruß
PurePi


SCtr_SetLanguage("VBScript")
SCtr_SetTimeOut(10000)

Procedure.s MyVBS()
VBS$ + "MyVar =" + Chr(34) +"Hallo"+ Chr(34) + #CRLF$
ProcedureReturn
EndProcedure

; folgende Aufrufe funkt. hier (aus dem Hauptprogramm) einwandfrei
; SCtr_AddCode(MyVBS())
; pbMyVar.s=SCtr_EvalStr("MyVar")


Procedure GetMyVar()
SCtr_AddCode(MyVBS())
pbMyVar.s=SCtr_EvalStr("MyVar")
EndProcedure

; Erfolgt der Aufruf aus einer Procedure gibt's "Invalid memory access.(read error at adress 0)"
GetMyVar()


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 19:05 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Die Lib kann ich im moment nicht finden, aber dafür gibts ja viele Alternativen:
http://www.purebasic.fr/german/viewtopi ... 5896#95896
http://www.purearea.net/pb/showcase/show.php?id=413

Gruß
Thomas

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: ScriptControl anstatt ComLib_PB4
BeitragVerfasst: 29.03.2008 19:36 
Offline

Registriert: 08.02.2007 08:18
@Thomas: Danke für den Hinweis
Ich sollte wohl mal sorgfältiger prüfen was ich da so schreibe....
Ich benutze die ScriptControl Lib (FileDate: 26.07.2006) und NICHT die ComLib_PB4

Mit der anderen Alternative (PureDispHelper) komme ich irgendwie nicht klar.

Gruß
Bernd


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: ScriptControl anstatt ComLib_PB4
BeitragVerfasst: 29.03.2008 19:41 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
PurePi hat geschrieben:
Ich benutze die ScriptControl Lib (FileDate: 26.07.2006) und NICHT die ComLib_PB4

Am besten die Lib neukompilieren, dafür ist es doch OpenSource :wink:
(nicht getested)
PurePi hat geschrieben:
Mit der anderen Alternative (PureDispHelper) komme ich irgendwie nicht klar.

Naja, einfach nochmal die Beispiele durcharbeiten :)

Gruß
Thomas

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 20:21 
Offline

Registriert: 08.02.2007 08:18
Besten Dank für die Info.
Das sollte von mir auch kein Gemecker sein...
Ich bin leider (zumindest was PB anbelangt) nur "Anwendungs"Programmierer :cry: und stecke ich den tieferer Systemschichten (LIBs, etc.) leider nicht tief genung drin, darum bin ich bei solchen Fehlern dann auch leider "schnell am Ende".

Zum Them die "Lib neu kompilieren" muß ich dafür nicht den Source haben ?? Wenn ja, wo gibts den ?
Habe soeben mal das Forum durchsucht nach einem HowTo "Lib erstellen/Komiplieren" aber nichts gefunden.
Gibts hier soetwas ?
Würde mich gern in die Thematik einarbeiten. <)

Was den PureDispHelper anbelangt:
-> Das habe ich rauf und runter gelesen und probiert (ohne Erfolg)
--> daher habe ich diesen Ansatz verworfen

Gruß
Bernd


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 20:38 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Die Sourcen sind beim Download dabei. Zum kompilieren brauchste TailBite, findeste im engl. Forum.

PureDisphelper hat viele, viele Beispiele, auch VBS!

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 20:39 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
PurePi hat geschrieben:
Was den PureDispHelper anbelangt:
-> Das habe ich rauf und runter gelesen und probiert (ohne Erfolg)
--> daher habe ich diesen Ansatz verworfen

was wolltest Du noch mal konkret machen?

Grüße ... Kiffi

_________________
ƃᴉɹǝᴉʍɥɔs ʇsᴉ ɥɔɐɟuᴉǝ


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 20:43 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Eins der Beispiele hat auch den treffenden Namen: VBS.pb
Code:
; by Kiffi and ts-soft

EnableExplicit

Procedure.s GetHtmlTitleVbs(URL$)

  Protected Script$

  Script$ = "Set myIE = CreateObject(" + #DQUOTE$ + "InternetExplorer.Application" + #DQUOTE$ + ")" + #CRLF$
  Script$ + "Do While myIE.Busy" + #CRLF$
  Script$ + "Loop" + #CRLF$
  Script$ + "myIE.Visible = False" + #CRLF$
  Script$ + "myIE.Navigate " + #DQUOTE$ + URL$ + #DQUOTE$ + #CRLF$
  Script$ + "Do While myIE.ReadyState <> 4" + #CRLF$
  Script$ + "Loop" + #CRLF$
  Script$ + "Set oDoc = myIE.Document" + #CRLF$
  Script$ + "myTitle = oDoc.title" + #CRLF$
  Script$ + "Set oDoc = Nothing" + #CRLF$
  Script$ + "Set myIE = Nothing" + #CRLF$

  ProcedureReturn Script$

EndProcedure

dhToggleExceptions(#True)

Define.l Result, obj = dhCreateObject("MSScriptControl.ScriptControl")
Define.s Script

If obj

  dhPutValue(obj, "Language = %T", @"VBScript")
  dhGetValue("%T", @Result, obj, "Language")

  If Result

    Debug "Language: " + PeekS(Result)
    dhFreeString(Result) : Result = 0

  EndIf

  dhPutValue(obj, "TimeOut = %d", 20000)
  dhGetValue("%d", @Result, obj, "TimeOut")

  Debug "TimeOut: " + Str(Result) + " ms"
  Script = GetHtmlTitleVbs("www.purebasic.com")
  dhCallMethod(obj, "AddCode(%T)", @Script)
  dhGetValue("%T", @Result, obj, "Eval(%T)", @"myTitle")

  If Result

    MessageRequester("PureBasic.com Titel:", PeekS(Result), #MB_ICONINFORMATION)
    dhFreeString(Result) : Result = 0

  EndIf

  dhReleaseObject(obj) : obj = 0

EndIf

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 21:05 
Offline

Registriert: 08.02.2007 08:18
Nochmals besten Dank.
Jo, den Source von ScriptControl habe ich gefunden (ist ja alles da, man muß nur mal genau gucken - aber heute geht bei mir irgendwie alles schief. )

Mit Tailbite werde ich mich gleich mal beschäftigen.

@kiffi
u.a. Source ist das was ich in VBS "abfahre" (und ums verrecken nicht mit dem DispHelper ans Laufen kriege).
-> Geht um MP3-Tags (lesen+schreiben)

Procedure.s TagKnecht(File$,ToDo$,Title$,Artist$,Year$,Album$,Kommentar$,ID$)

; Was is: read or write
VBS$ +"ToDo="+ Chr(34) +ToDo$+ Chr(34)+#CRLF$
; Object klar machen
VBS$ + "Set oWMP = CreateObject(" + Chr(34) + "wmPlayer.ocx" + Chr(34) + ") " + #CRLF$
VBS$ + "Set oMedia = oWMP.newMedia("+Chr(34)+File$+ Chr(34)+")" + #CRLF$
;Read
VBS$ + "If ToDo="+ Chr(34) + "Read"+ Chr(34) + " Then" + #CRLF$
VBS$ + "Duration=oMedia.GetIteminfo(" + Chr(34) + "Duration"+ Chr(34) + ") " + #CRLF$
VBS$ + "Bitrate=oMedia.GetIteminfo(" + Chr(34) + "Bitrate"+ Chr(34) + ") " + #CRLF$
VBS$ + "Titel=oMedia.GetIteminfo(" + Chr(34) + "Title"+ Chr(34) + ") " + #CRLF$
VBS$ + "Artist=oMedia.GetIteminfo(" + Chr(34) + "Artist"+ Chr(34) + ") " + #CRLF$
VBS$ + "Jahr=oMedia.GetIteminfo(" + Chr(34) + "WM/Year"+ Chr(34) + ") " + #CRLF$
VBS$ + "Album=oMedia.GetIteminfo(" + Chr(34) + "WM/AlbumTitle"+ Chr(34) + ") " + #CRLF$
VBS$ + "FileID1=oMedia.GetIteminfo(" + Chr(34) + "copyright" + Chr(34) + ") " + #CRLF$
VBS$ + "FileID2=oMedia.GetIteminfo(" + Chr(34) + "WM/UniqueFileIdentifier" + Chr(34) + ") " + #CRLF$
VBS$ + "FileID3=oMedia.GetIteminfo(" + Chr(34) + "WM/TrackNumber" + Chr(34) + ") " + #CRLF$
VBS$ + "End If"+ #CRLF$
;Write
VBS$ + "If ToDo="+ Chr(34) + "Write"+ Chr(34) + " Then" + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "Title" + Chr(34) + ","+ Chr(34) +Title$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "Artist" + Chr(34) + ","+ Chr(34) +Artist$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "WM/Year" + Chr(34) + ","+ Chr(34) +Year$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "WM/AlbumTitle" + Chr(34) + ","+ Chr(34) +Album$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "Description" + Chr(34) + ","+ Chr(34) +Kommentar$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "copyright" + Chr(34) + ","+ Chr(34) +ID$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "WM/UniqueFileIdentifier" + Chr(34) + ","+ Chr(34) +ID$+ Chr(34) + ") " + #CRLF$
VBS$ + "Ret=oMedia.SetIteminfo(" + Chr(34) + "WM/TrackNumber" + Chr(34) + ","+ Chr(34) +ID$+ Chr(34) + ") " + #CRLF$
VBS$ + "End If"+ #CRLF$

ProcedureReturn


EndProcedure


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 21:30 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
PurePi hat geschrieben:
Code:
   ProcedureReturn

da haste was vergessen zu posten, oder ist das in Deinem Code auch so?

Grüße ... Kiffi

_________________
ƃᴉɹǝᴉʍɥɔs ʇsᴉ ɥɔɐɟuᴉǝ


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye