Class_Initialize()?

Tags:    visual-basic

Hej,

bliver "Class_Initialize()" (i ActiveX dll) kørt hver gang man laver et kald til komponenten, eller kun første gang den bliver kaldt?

Hvis den kun bliver kaldt første gang, kunne man så ikke åbne en database i "Class_Initialize()", for så at lukke den i "Class_Terminate()"?

Kim



Hej,

bliver "Class_Initialize()" (i ActiveX dll) kørt hver gang man laver et kald til komponenten, eller kun første gang den bliver kaldt?

Hvis den kun bliver kaldt første gang, kunne man så ikke åbne en database i "Class_Initialize()", for så at lukke den i "Class_Terminate()"?

Kim


Det kan du roligt gøre, da Class_Initialize kun bliver udført, når klassen oprettes (bliver "created") første gang. Ligeledes kaldes Class_Terminate ikke før end klassen destrueres. Det ER dog muligt at din database vil blive åbnet flere gange, hvis du opretter mere end én "instance" af en klasse.

For eksempel, hvis du har en CDatabase klasse (hvadenten den ligger i en selvstændig DLL eller i et standard EXE project) og opretter mere en et objekt af den type, ja så kaldes Class_Initialize en gang for hver gang du opretter et CDatabase-objekt.



t