über VB 2010 auf DLL von PB zugreiffen (linklisten)

Fragen zu allen anderen Programmiersprachen.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

über VB 2010 auf DLL von PB zugreiffen (linklisten)

Beitrag 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.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: über VB auf DLL von PB zugreiffen (linklisten)

Beitrag von DarkDragon »

Eine Link-liste oder eine Linkedlist? 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 ;-) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)

Beitrag 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
Zuletzt geändert von Andreas21 am 06.11.2010 11:10, insgesamt 3-mal geändert.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)

Beitrag 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.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)

Beitrag von Andreas21 »

Code für PB zum ansprechen der DLL hinzugefügt.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: über VB 2010 auf DLL von PB zugreiffen (linklisten)

Beitrag 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?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten