VB6, VS 2008-Interop-Toolkit, Fehler beim Beenden der Anwendung

Hallo!

Ich nutze temporör (bis die gesamte Applikation auf VS 2008 umgestellt ist)
das Interop-Toolkit 2.0 und setlle meine alten VB6-Formulare einzeln auf
…NET um. Das funktioniert soweit ganz gut, einziges Problem ist List und
Label 13, es erzeugt beim Beenden eine Access-Violation, obwohl ich
eigentlich schon peinlich genau darauf geachtet habe, alle Objekte
freizugeben.

2008-11-20, 08:57.57.829 CMLL13.DLL >>>========================= 20.11.2008,
08:57:57
2008-11-20, 08:57.57.829 CMLL13.DLL Exception code: 0xc0000005 (Access
Violation)
2008-11-20, 08:57.57.829 CMLL13.DLL Registers:
2008-11-20, 08:57.57.845 CMLL13.DLL EIP: 0x3001863c
2008-11-20, 08:57.57.845 CMLL13.DLL EAX: 0x0dc06868, EBX: 0x0d8024a4, ECX:
0x30407de4, EDX: 0x0dc06868
2008-11-20, 08:57.57.845 CMLL13.DLL ESI: 0x0d820d3c, EDI: 0x00000000, ESP:
0x0012f8a8, EBP: 0x0012f8bc (Stack Range: 0x00124000…0x00130000)
2008-11-20, 08:57.57.845 CMLL13.DLL CS: 0x001b, DS: 0x0023, ES: 0x0023, FS:
0x003b, GS: 0x0000, SS: 0x0023
2008-11-20, 08:57.57.845 CMLL13.DLL Flags:0x00010202
2008-11-20, 08:57.57.845 CMLL13.DLL Code environment:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x300185f0 0a 8d 41 18 59 c3 ff 51 5c
eb ee 89 c8 e8 4e 22
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018600 31 00 8d 41 18 59 c3 31 c0
59 c3 8d 40 00 8b c9
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018610 55 89 e5 51 56 57 83 ec 04
89 c6 89 df 85 d2 74
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018620 4b 8d 42 e0 89 c3 83 c0 18
c7 40 04 54 61 3f 30
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018630 8b 10 89 45 f0 85 d2 74 08
89 d0 50 8b 12 ff 52
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018640 08 8b 45 f0 ba 01 00 00 00
c7 00 00 00 00 00 83
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018650 e8 18 e8 d9 22 31 00 83 7e
60 00 74 17 8d 14 bd
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018660 00 00 00 00 89 d8 83 c2 24
ff 56 60 8d 65 f4 5f
2008-11-20, 08:57.57.845 CMLL13.DLL Stack Trace:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x3001863c=CMLL13
[3001863c=0x01] *** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.845
CMLL13.DLL ---------------------------------------------------------
2008-11-20, 08:57.57.860 CMLL13.DLL 12f8bc:CMLL13 [303271cd=0x01]
*** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.860 CMLL13.DLL CALL
p[1]=0x0d820d38, p[2]=0x00000000, p[3]=0x3002d7b1, p[4]=0x0d75a1d8,

Die Applikation ist zu diesem Zeitpunkt bereits etwa 20sek lang zu! Logisch,
daß ein Zugriff auf “ehemalige” Speicherbreiche dann zu einer
Zugriffsverletzung führen.

Hat jemand eine Idee?

mfg
Hagen Schloemer

Das klingt verdammt nach GarbageCollection…

Kannst Du das LL-Objekt beim Beenden der Applikation selbst
Dispose()n, so daß es definitiv beendet ist?

Paulchen

“Hagen Schloemer” <news@ceco…> wrote in message
news:159371120200891329@combit.net…

Hallo!

Ich nutze temporör (bis die gesamte Applikation auf VS 2008
umgestellt ist)
das Interop-Toolkit 2.0 und setlle meine alten VB6-Formulare einzeln
auf
.NET um. Das funktioniert soweit ganz gut, einziges Problem ist List
und
Label 13, es erzeugt beim Beenden eine Access-Violation, obwohl ich
eigentlich schon peinlich genau darauf geachtet habe, alle Objekte
freizugeben.

2008-11-20, 08:57.57.829 CMLL13.DLL >>>=========================
20.11.2008,
08:57:57
2008-11-20, 08:57.57.829 CMLL13.DLL Exception code: 0xc0000005
(Access
Violation)
2008-11-20, 08:57.57.829 CMLL13.DLL Registers:
2008-11-20, 08:57.57.845 CMLL13.DLL EIP: 0x3001863c
2008-11-20, 08:57.57.845 CMLL13.DLL EAX: 0x0dc06868, EBX:
0x0d8024a4, ECX:
0x30407de4, EDX: 0x0dc06868
2008-11-20, 08:57.57.845 CMLL13.DLL ESI: 0x0d820d3c, EDI:
0x00000000, ESP:
0x0012f8a8, EBP: 0x0012f8bc (Stack Range: 0x00124000…0x00130000)
2008-11-20, 08:57.57.845 CMLL13.DLL CS: 0x001b, DS: 0x0023, ES:
0x0023, FS:
0x003b, GS: 0x0000, SS: 0x0023
2008-11-20, 08:57.57.845 CMLL13.DLL Flags:0x00010202
2008-11-20, 08:57.57.845 CMLL13.DLL Code environment:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x300185f0 0a 8d 41 18 59 c3 ff
51 5c
eb ee 89 c8 e8 4e 22
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018600 31 00 8d 41 18 59 c3
31 c0
59 c3 8d 40 00 8b c9
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018610 55 89 e5 51 56 57 83
ec 04
89 c6 89 df 85 d2 74
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018620 4b 8d 42 e0 89 c3 83
c0 18
c7 40 04 54 61 3f 30
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018630 8b 10 89 45 f0 85 d2
74 08
89 d0 50 8b 12 ff 52
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018640 08 8b 45 f0 ba 01 00
00 00
c7 00 00 00 00 00 83
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018650 e8 18 e8 d9 22 31 00
83 7e
60 00 74 17 8d 14 bd
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018660 00 00 00 00 89 d8 83
c2 24
ff 56 60 8d 65 f4 5f
2008-11-20, 08:57.57.845 CMLL13.DLL Stack Trace:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x3001863c=CMLL13
[3001863c=0x01] *** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.845
CMLL13.DLL ---------------------------------------------------------
2008-11-20, 08:57.57.860 CMLL13.DLL 12f8bc:CMLL13
[303271cd=0x01]
*** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.860 CMLL13.DLL CALL
p[1]=0x0d820d38, p[2]=0x00000000, p[3]=0x3002d7b1, p[4]=0x0d75a1d8,

Die Applikation ist zu diesem Zeitpunkt bereits etwa 20sek lang zu!
Logisch,
daß ein Zugriff auf “ehemalige” Speicherbreiche dann zu einer
Zugriffsverletzung führen.

Hat jemand eine Idee?

mfg
Hagen Schloemer

Hallo,
Ist LL denn im VB6 Teil oder im .NET Teil eingebunden? Oder ist es gar in
einem “umgestellten” Teil? Hast Du die .NET Komponente eingebunden, oder
läuft LL über OCX, DLL? Ich denke ein paar nähere Infos zu dem Projekt und
speziell zur LL Integration könnten hilfreich beim helfen sein :slight_smile:

Gruss,
Harry

“Hagen Schloemer” <news@ceco…> schrieb im Newsbeitrag
news:159371120200891329@combit.net…

Hallo!

Ich nutze temporör (bis die gesamte Applikation auf VS 2008 umgestellt
ist) das Interop-Toolkit 2.0 und setlle meine alten VB6-Formulare einzeln
auf .NET um. Das funktioniert soweit ganz gut, einziges Problem ist List
und Label 13, es erzeugt beim Beenden eine Access-Violation, obwohl ich
eigentlich schon peinlich genau darauf geachtet habe, alle Objekte
freizugeben.

2008-11-20, 08:57.57.829 CMLL13.DLL >>>=========================
20.11.2008, 08:57:57
2008-11-20, 08:57.57.829 CMLL13.DLL Exception code: 0xc0000005 (Access
Violation)
2008-11-20, 08:57.57.829 CMLL13.DLL Registers:
2008-11-20, 08:57.57.845 CMLL13.DLL EIP: 0x3001863c
2008-11-20, 08:57.57.845 CMLL13.DLL EAX: 0x0dc06868, EBX: 0x0d8024a4, ECX:
0x30407de4, EDX: 0x0dc06868
2008-11-20, 08:57.57.845 CMLL13.DLL ESI: 0x0d820d3c, EDI: 0x00000000, ESP:
0x0012f8a8, EBP: 0x0012f8bc (Stack Range: 0x00124000…0x00130000)
2008-11-20, 08:57.57.845 CMLL13.DLL CS: 0x001b, DS: 0x0023, ES: 0x0023,
FS: 0x003b, GS: 0x0000, SS: 0x0023
2008-11-20, 08:57.57.845 CMLL13.DLL Flags:0x00010202
2008-11-20, 08:57.57.845 CMLL13.DLL Code environment:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x300185f0 0a 8d 41 18 59 c3 ff 51 5c
eb ee 89 c8 e8 4e 22
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018600 31 00 8d 41 18 59 c3 31 c0
59 c3 8d 40 00 8b c9
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018610 55 89 e5 51 56 57 83 ec 04
89 c6 89 df 85 d2 74
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018620 4b 8d 42 e0 89 c3 83 c0 18
c7 40 04 54 61 3f 30
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018630 8b 10 89 45 f0 85 d2 74 08
89 d0 50 8b 12 ff 52
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018640 08 8b 45 f0 ba 01 00 00 00
c7 00 00 00 00 00 83
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018650 e8 18 e8 d9 22 31 00 83 7e
60 00 74 17 8d 14 bd
2008-11-20, 08:57.57.845 CMLL13.DLL 0x30018660 00 00 00 00 89 d8 83 c2 24
ff 56 60 8d 65 f4 5f
2008-11-20, 08:57.57.845 CMLL13.DLL Stack Trace:
2008-11-20, 08:57.57.845 CMLL13.DLL 0x3001863c=CMLL13
[3001863c=0x01] *** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.845
CMLL13.DLL ---------------------------------------------------------
2008-11-20, 08:57.57.860 CMLL13.DLL 12f8bc:CMLL13
[303271cd=0x01] *** CMLL13 (13,14,0,0 (08-09-29 12:13))
2008-11-20, 08:57.57.860 CMLL13.DLL CALL
p[1]=0x0d820d38, p[2]=0x00000000, p[3]=0x3002d7b1, p[4]=0x0d75a1d8,

Die Applikation ist zu diesem Zeitpunkt bereits etwa 20sek lang zu!
Logisch, daß ein Zugriff auf “ehemalige” Speicherbreiche dann zu einer
Zugriffsverletzung führen.

Hat jemand eine Idee?

mfg
Hagen Schloemer