[VB] Dll functies uit parent laten aanroepen

Pagina: 1
Acties:

  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:44
Ok ik heb een vb programma waar ik graag een plugin-systeem in wil bouwen, ik heb al een manier om ActiveX Dll's tijdens runtime te registreren, maar nu wil ik eigenlijk in de plugin-dll's functies en objects uit het main-programma laten aanroepen. Hoe doe ik dit?

Bijv:
Mijn programma heeft een form genaam MainForm, nu wil ik in de dll bijv de caption van dat form veranderen, echter als ik gewoon MainForm.Caption in die dll gebruik geeft hij een error (hij compiled de dll echter wel).
Kan dit wel? Zo ja hoe?

PS,
Ik heb gegoogled maar ik weet niet zo goed welke zoektermen ik meot opgeven

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Er is in VB vast wel iets te doen met de zoektermen "Callback", en "by reference"?

Professionele website nodig?


  • DRAFTER86
  • Registratie: April 2002
  • Laatst online: 17:44
Er is met die zoektermen inderdaad zat te vinden, maar alleen over (V)C++ Dll's in VB en ik heb gewoon een VB-ActiveX DLL.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ermm...dit heeft niets met een DLL specifiek te maken. Jij maakt gebruik van COM (ActiveX).

Ja, je kan er een plugin systeem mee maken. Ja, je kan de caption van de mainform veranderen als je dat wilt, maar niet zo simpel als dat jij nu gedaan hebt (raad ik zonder je code gezien te hebben). Helaas is COM niet even iets wat je in 1 antwoord zomaar kan uitleggen. Ik stel voor dat je er eens wat meeer informatie over gaat zoeken. Of gebruik geen COM en doe het met pure DLL calls.

We adore chaos because we like to restore order - M.C. Escher


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Wat je kan doen, is in je plugin een set-property maken met als type een form. Vervolgens roep je bij na het initialiseren van de plugin deze property aan met als param je form:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Plugin in class:
private m_RefToMainForm As Form

Public Property Set ReferenceToMainForm(vNewValue as Form)
  Set m_RefToMainForm = vNewValue
End Property

In Main Form:

Public Sub LoadPlugin()
  'Initialize plugin
  objPlugin.ReferenceToMainForm = Me
End Sub

Dan kan je in je plugin RefToMainForm.Caption = "" doen en dan zou dit moeten werken.