Avatar billede pcnovice Nybegynder
13. december 2004 - 15:40 Der er 1 løsning

Kan ikke fange instans via getObejct!

Hej!

Jeg har en en application som jeg ikke har lavet, men som jeg ønsker skal kalde en aplikation som jeg skal lave. Jeg har en metode i en klasse i et ActiveX.dll project, som bliver kaldt og som jeg så kan bruge til at kalde videre med.

Jeg har et ønske om at der kun skal være 1 instans af den klasse som jeg selv skal lave. Jeg har således brugt getObject for enten at lave en ny (den første) instans af min aplikation, eller for at fange den eksisterende. Problemet er bare at den laver en ny hver gang?

Lidt kode for at kaste lidt lys over min forklaring:

- Eksisterend klasse i et dll project. Mit kald til min aplikation SKAL ligge i metoden execute()

Public Sub Execute()
    Dim link As Object
   
    Set link = getLink
    link.trigger cd.CLI
end sub

Private Function getLink() As Object
On Error GoTo errH
    Dim link As Object
    MsgBox "1"
    Set link = GetObject(, "Link.clsMain")
    Set getLink = link
    Exit Function
errH:
    MsgBox "2"
    Err.Clear
    Set link = GetObject("", "Link.clsMain")
    Set getLink = link
End Function

- Link er ActiveX.exe, med en threadPool på 1. clsMain er klasse som er sat til multiUse. clsMain viser en form m.m.

Hvis jeg debugger getLink, så udskriver den "1" og så "2", første gang, og det er OK. Men anden gang går den samme vej? Jeg har ikke lukket den form som link.clsMain laver, men er det ikke nok til at der eksisterer en instans som getObject kan finde eller?

Tak
Avatar billede pcnovice Nybegynder
14. december 2004 - 13:40 #1
Fand selv en anden løsning på mit problem:

http://c2.com/cgi/wiki?VisualBasicSingleton
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester