[VB] Variabelen in een dll

Pagina: 1
Acties:

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Gezocht via google en de GoT search, maar niks gevonden!

IK ben in vb een dll aan het maken met een functie daarin. Die functie kan worden aangeroepen met enkele params, waarvan enkele eigenlijk constanten zijn. Nu heb ik deze constanten in de dll erbij gezet (in een aparte module, "public const") Maar deze kan ik vanuit de app waar ik de dll in aanroep niet gebruiken.
Hoe ik krijg ik het voor elkaar dat ik een constante heb IN de dll die ik vanuit andere app, die een link hebben met de dll, kan aanroepen/gebruiken???

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:27

mulder

ik spuug op het trottoir

Door die variable te returnen door die dll. Of je je moet die variable in beide defineeren...

oogjes open, snaveltjes dicht


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Op zondag 07 juli 2002 17:51 schreef Don Facundo het volgende:
Door die variable te returnen door die dll. Of je je moet die variable in beide defineeren...
Hoe bedoel je te returnen? Via een get property???

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:40

pistole

Frutter

yep. dat zou het handigst zijn

Ik frut, dus ik epibreer


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Op zondag 07 juli 2002 17:55 schreef pistole het volgende:
yep. dat zou het handigst zijn
Maar als je sommige dll's aan je prog koppelt heb je soms automatisch ook al enkele constanten van die dll.. hoe doen ze dat dan?

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:40

pistole

Frutter

mi9sschien door die variabele of constante te declareren met Public ?

Ik frut, dus ik epibreer


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:27

mulder

ik spuug op het trottoir

Dat is volgens mij een TypeLib. Je krijgt nooit 'automatisch' de variablen

oogjes open, snaveltjes dicht


  • rollebol
  • Registratie: Mei 2000
  • Laatst online: 09-06 12:38
Ik ben bang dat ik nu best aan het bazelen kan zijn, aangezien ik me nog nooit extreem met Windows-programmeren heb beziggehouden. Maar in C is het magische toverwoord 'extern'. Misschien heb je hier iets aan.

(Maar ik denk van niet) :)

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:40

pistole

Frutter

en anders dus zoiets:
code:
1
2
3
4
5
6
Dim c_blaffen As String
Const c_blaffen = "woef"

Public Property Get blaffen()
    blaffen = c_blaffen
End Property

Ik frut, dus ik epibreer


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Ik heb het al opgelost.

Ik heb in mijn class een public enum gemaakt en ze daar ingezet. Werkt perfect!!!

Bedankt voor de reacties iig.

edit:

dit werkt alleen bij numerieke waarden. Bij een string krijg ik type mismatch?!!??? iemand een idee.

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Op zondag 07 juli 2002 17:59 schreef pistole het volgende:
mi9sschien door die variabele of constante te declareren met Public ?
Dit gaat niet, want dan krijg je een foutmelding. Je mag namelijk geen public vars/const in een class zetten..

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:27

mulder

ik spuug op het trottoir

Op zondag 07 juli 2002 18:09 schreef NTGiant het volgende:

[..]

Dit gaat niet, want dan krijg je een foutmelding. Je mag namelijk geen public vars/const in een class zetten..
Euuh Properties? get en set (let? (slet?))

oogjes open, snaveltjes dicht


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:40

pistole

Frutter

Op zondag 07 juli 2002 18:05 schreef NTGiant het volgende:
Ik heb het al opgelost.

Ik heb in mijn class een public enum gemaakt en ze daar ingezet. Werkt perfect!!!

Bedankt voor de reacties iig.

edit:

dit werkt alleen bij numerieke waarden. Bij een string krijg ik type mismatch?!!??? iemand een idee.
Ik denk dat je enums alleen voor integers kan gebruiken (check yer manual)
Zie ook MSDN

Ik frut, dus ik epibreer


  • TheMrH
  • Registratie: April 2000
  • Laatst online: 01-09 22:45
Je kan ook je argumenten van de functie Optional maken: als ze dan niet meegegeven zijn neem je de gedefinieerde constanten.

The box said 'requires Windows 95 or better', so I installed Linux...


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
Ik denk dat je enums alleen voor integers kan gebruiken (check yer manual)
Zie ook MSDN
inderdaad, een enum in vb is niets anders dan een methode om het voor de developer makkelijker te maken; hij hoeft bij het toekennen van een waarde aan een variable van dat type niet meer uit zijn hoofd te weten welke (integer) waarde waar voor staat, maar krijgt een handig lijstje van waarden voor zn snufferd. het werkelijke datatype achter een enum blijft de integer, die automatisch wordt toegekend als je in een Enum statement een aantal tekstwaarden opgeeft:
code:
1
2
3
4
5
Public Enum GotchasCoolValues
    WayCool            'integer value 0
    EvenCooler          'integer value 1
    TheCoolest          'integer value 2
End Enum

daarom maakt het in vb ook geen bal uit of je vergelijkt met de getalwaarde of de tekstwaarde van een enum.

oplossing voor publieke constanten is mijns inziens read-only properties zoals al eerder genoemd

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Het hoeft ook maar een read-only variabele te zijn.
Je kan een functie aanroepen met 3 van die verschillende constanten.
dus:
code:
1
2
3
4
5
6
7
const x1 = "a"
const x2 = "b"
const x3 = "c"

public function dosomething(strConst as string)
...
end function

in dit verhaal kan voor strConst een van de drie bovenstaande constante worden ingevuld.
Pagina: 1