[VB]Functie in DLL niet te benaderen

Pagina: 1
Acties:

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
In vb6 het volgende:

Ik maak een DLL met 1 form (wordt tijdens runnen niet getoond), een aantal modules en een class-module. In deze laatste heb ik een aantal functies/subs die ik vanuit het formulier moet kunnen aanroepen, alleen ze worden niet herkend. Functies/sub zijn public en ik kan ze vanuit de class-module wel aanroepen.

Zie ik iets over het hoofd of kan dit gewoonweg niet ?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Export je de functions ook....?
Verder wordt het (uiteraard) erg moeilijk om je te helpen zonder enige (relevante) code en verdere informatie over hoe en wat.

My personal website


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
wat bedoel je met export je de functies ook ?

Wat wil je verder weten dan.

Ik heb een functie myFunc() in een class-module die ik wil aanroepen vanuit bv een event van een knop. Code is niet relevant, het gaat om het principe

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

"Code is niet relevant" lijkt me een erg stugge uitspraak, aangezien het hier om code gaat welke niet werkt zoals jij het hebben wil. Dat zit waarschijnlijk in je code, want normaal werkt het wel. En "het principe" waar het dan om gaat...? Weer te geven in code! ;)

Wat ik met exports bedoeld is dat, als ik een DLL in Delphi schrijf, ik aan het einde van de DLL duidelijk aan meot geven welke van de (al dan neit public) functions ik wil exporteren (beschikbaar wil maken voor aanvragen van buitenaf). Ik ga er van uit dat je in VB ook duidelijk zult moeten maken welke funtie wel en welke niet beschikbaar zijn voor extern gebruik.

[ Voor 13% gewijzigd door OZ-Gump op 25-09-2003 10:50 ]

My personal website


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
het zit waarschijnlijk niet in de code en ja, ik heb de scoop van de functies goed staan. Ik wil de betreffende functie (in dll) ook aanroepen in die dll, niet in een apart programma.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Heb je de dll geregistreerd?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

@TS: als je pertinent blijft weigeren je code te laten zien wordt het toch echt moeilijk er verder iets nuttigs over te zeggen. Die code is niet alleen om naar te kijken, daarmee kun je een bepaalde situatie ook nabootsen om te testen. Maar ik ga nu niet een test maken om daarna te horen te krijgen: "ja maar zo doe ik dat niet, het moet anders." Snappie?

Je geeft zelf aan dat je scopes goed staan, maar je kunt de functies niet correct aanroepen. Dan lijkt het mij dat er ergens toch iets niet helemaal zo staat zoals het zou horen te staan... :?

Toch maar een tipje: verduidelijk je openingspost een beetje?

My personal website


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
had ik al gedaan, nogmaals gedaan, geen resultaat. Ik wil dus programmeren binnen in mijn dll ! Niet erbuiten, dat werkt wel via andere functies, maar dat is hier niet van toepassing.

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

heb je de dll bij project->references toegevoegd? en zo ja, kun je met de objectbrowser zien wat er allemaal in de dll zit :?

kaart != map && bottel != fles
Wacht op antwoord


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
in de class-module heb ik een functie:
code:
1
2
3
public function myFunction()as integer
myFunction=10
end function


verder heb ik in het formulier een event dat zich IN de dll bevindt, een knop met de volgende code eronder:
code:
1
2
3
4
5
Private Sub cmdRun_Click()
dim i as integer
i=myFunction
msgbox i
End Sub


dit werkt dus niet. Als ik ga compileren zie ik sub or function not defined.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
j_du_pee schreef op 25 September 2003 @ 11:01:
heb je de dll bij project->references toegevoegd? en zo ja, kun je met de objectbrowser zien wat er allemaal in de dll zit :?
heb ik gedaan en vanuit mijn hoofdapplicatie kan ik de benodigde functies gewoon aanroepen.

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

nogal wiedus dat dat niet gaat werken :)

je zult als het een externe dll is toch echt moeten aangeven dat je methoden daaruit wilt gebruiken.

Je code zou er dus ongeveer zo uit moeten zien:
Visual Basic:
1
2
3
4
5
6
Private Sub cmdRun_Click()
 dim i as integer
 obj = new Project.Class
 i=obj.myFunction
 msgbox i
End Sub

kaart != map && bottel != fles
Wacht op antwoord


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
..

[ Voor 99% gewijzigd door pkouwer op 25-09-2003 11:16 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

edit:
Door onduidelijkheid en (te) snel lezen fout antwoord

Used je formulier wel de class waar je function staat? Heb je eventueel classname.functionnaam geprobeerd? Kun je uderhaupt de class vinden vanuit je form?

[ Voor 144% gewijzigd door OZ-Gump op 25-09-2003 11:17 ]

My personal website

Pagina: 1