Seite 1 von 1
über VB 2010 auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 10:50
von Andreas21
Hallo,
Ich habe eine frage zu Linklisten.
Ich habe eine DLL die als Parameter eine Linkliste erwartet.
Wie kann ich diese unter VB ansprechen?
Versuche es seit 2 Tagen.
Bekomme nur Memory Fehler.
Code: Alles auswählen
Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
Re: über VB auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 10:54
von DarkDragon
Eine Link-liste oder eine Link
edlist? Es kommt in jedem Fall darauf an wie du es in PB gelöst hast. Wenn du einen Parameter mit einer PureBasic Linkedlist hast kannst du es wohl vergessen

.
Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 10:58
von Andreas21
Jup, Ich benutzte in der PB dll eine Linklist als Parameter um die Parameter zu übergeben und bekomme auch einenen Pointer zu einem Interface als Antwort zurück.
Ok danke dann muss ich es doch anders machen.
Danke für die Schnelle Antwort.
Gedacht wars eigentlich so mal.
VB
Code: Alles auswählen
Declare Function PluginInit Lib "plugin.dll" Alias "PluginInit" (ByVal plugin As structure_Plugin) As interface_Plugin
PB
Code: Alles auswählen
ProcedureDLL.i PluginInit(*Plugin.Plugin_Structure)
Protected *v.Self
*v = AllocateMemory(SizeOf(Self))
*v\Procedures = ?Procedures
ProcedureReturn *v
EndProcedure
In PB leuft ja alles ohne Probleme.
Code: Alles auswählen
Interface Plugin_Interface
PluginTyp()
...
EndInterface
Structure Plugin_Structure
Library.i
Name.s
SQLiteDatenbank.s
Position.i
...
Proc.Plugin_Interface
EndStructure
Plugin.Plugin_Structure
Library = OpenLibrary(#PB_Any, "plugin.dll")
If IsLibrary(Plugin\Library)
Adresse = GetFunction(Plugin\Library, "PluginInit")
If Adresse
Plugin\proc = CallFunctionFast(Adresse, Plugin)
PluginTyp = PeekS(Plugin\proc\PluginTyp())
EndIf
CloseLibrary(Plugin\Library)
EndIf
Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 11:01
von TomS
Keine Ahnung von VB, aber wenn du mit dem Pointer zur PureBasic LL was in VB anfangen kannst, müsstest du auch einen Pointer an die DLL übergeben können.
Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 11:07
von Andreas21
Code für PB zum ansprechen der DLL hinzugefügt.
Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)
Verfasst: 06.11.2010 11:11
von DarkDragon
Also ich sehe bei dir keine Linkedlist.
Keine Ahnung von VB, aber wenn du mit dem Pointer zur PureBasic LL was in VB anfangen kannst, müsstest du auch einen Pointer an die DLL übergeben können.
Das ist aber natürlich nicht zu empfehlen, denn wer weiß wann sich die Struktur der PureBasic LL's wieder ändert?