LL13ModuleExit() und DllUnLoad(hDll)

Moderator: Moderatoren

Antworten
Krause
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Mo, 08. Jan 2007 8:55
Wohnort: In Thüringen

LL13ModuleExit() und DllUnLoad(hDll)

Beitrag von Krause »

Hi,

ich habe ein Verständnisproblem mit DllUnLoad(hDll) in der LL13ModuleExit() Pocedure.

Original:

Code: Alles auswählen

PROCEDURE LL13ModuleExit()
  DllUnLoad(hDll)
  aLL13Vars[ThreadID()] := NIL
RETURN
ergänzt man dieses nun wie folgt:

Code: Alles auswählen

PROCEDURE LL13ModuleExit()
 LOCAL lIsDLL_Loaded :=.F., nX:=0
 DllUnLoad(hDll)
 lIsDLL_Loaded := DllInfo(hDll,DLL_INFO_LOADED)  
 nX:= DllInfo(hDll,DLL_INFO_HANDLE)                  
 aLL13Vars[ThreadID()] := NIL
RETURN
erhält man für lIsDLL_Loaded = .T. und für nX ein Wert ungleich 0, das heißt, die DLL wird gar nicht "entladen" ?

MfG
Joachim Kause
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

verwendest du das Sample von Tom von der Devcon ?
versuche mal

Code: Alles auswählen

hJob := LlJobOpen(CMBTLANG_GERMAN) // open job with GERMAN
...

PROCEDURE LL13ModuleExit()
*  DllUnLoad(hDlls)
*  DllUnLoad(hDll )
**    aLL13Vars[ThreadID()] := NIL

   IF hJob > 0
      LlSetDebug(0)
      LlJobClose(hJob)
   ENDIF

RETURN
gruss by OHR
Jimmy
Krause
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Mo, 08. Jan 2007 8:55
Wohnort: In Thüringen

Beitrag von Krause »

Hi,

ich habe die original cmbtll13.prg benutzt und lediglich folgenden Code aufgerufen:

Code: Alles auswählen

PROCEDURE MAIN
  LL13ModuleInit()
  LL13ModuleExit()
 WAIT
RETURN

Nach DllUnLoad(hDll ) kann man die DLL - Funktionalität nicht mehr nutzen, die Ergebnisse:

Code: Alles auswählen

 lIsDLL_Loaded := DllInfo(hDll,DLL_INFO_LOADED)  
 nX:= DllInfo(hDll,DLL_INFO_HANDLE)                  
sind also nicht aussagekräftig ...

MfG
Joachim Krause
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

besorge dir doch mal das Referat von Tom von der Devcon 2007.
die LL_* Routinen erleichtern einem das Arbeiten erheblich.
gruss by OHR
Jimmy
Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 188
Registriert: Di, 24. Jul 2007 9:17

Re: LL13ModuleExit() und DllUnLoad(hDll)

Beitrag von Scarmo »

Hallo zusammen

Wir arbeiten auch mit List&Label 13 und irgendwie habe ich den Eindruck, dass nach dem DllUnload() tatsächlich nicht alles aus dem Speicher verschwindet... Kann das sein? Oder gibt es für die Prozedur ll13ModuleExit() eine bessere Variante wie der Standard von Combit?

Vielen Dank für Eure Infos
Marco
Antworten