Memory leaks in usp10.dll ?
-
Hallo,
Beim starten meines SDI projektes werden memory leaks angezeigt. In der Ausgabe erscheint folgendes Bild:
"My-Software.exe": "C:\WINDOWS\system32\usp10.dll" wurde geladen Detected memory leaks! Dumping objects -> {62} normal block at 0x003C9168, 50 bytes long. Data: <t > 74 ED 8E 00 10 00 00 00 10 00 00 00 01 00 00 00 {61} normal block at 0x003C90F8, 52 bytes long. Data: <t > 74 ED 8E 00 11 00 00 00 11 00 00 00 01 00 00 00 {60} normal block at 0x003C90A0, 28 bytes long. Data: < < < < > A0 90 3C 00 A0 90 3C 00 A0 90 3C 00 CD CD CD CD {59} normal block at 0x003C9048, 24 bytes long. Data: <H < H < H < > 48 90 3C 00 48 90 3C 00 48 90 3C 00 CD CD CD CD {58} normal block at 0x003C8FF0, 24 bytes long. Data: < < < < > F0 8F 3C 00 F0 8F 3C 00 F0 8F 3C 00 CD CD CD CD {57} normal block at 0x003C8F98, 24 bytes long. Data: < < < < > 98 8F 3C 00 98 8F 3C 00 98 8F 3C 00 CD CD CD CD {56} normal block at 0x003C8F40, 24 bytes long. Data: <@ < @ < @ < > 40 8F 3C 00 40 8F 3C 00 40 8F 3C 00 CD CD CD CD {55} normal block at 0x003C8EE8, 24 bytes long. Data: < < < < > E8 8E 3C 00 E8 8E 3C 00 E8 8E 3C 00 CD CD CD CD Object dump complete. "My-Software.exe": "C:\WINDOWS\system32\msctf.dll" wurde geladen...
Das ganze passiert, bevor die InitInstance erreicht wird. Wie kann ich die denn bitte beseitigen? Mir scheint dafür bin ich nicht verantwortlich. Das Programm läuft aber weiter.
Danke für hilfe..
Micha
-
Es ist nicht gesagt, dassdies ein Leak ist, anscheinend hat irgendwer in der DLL evtl. einen _CrtDumpMemoryLeaks aufgerufen...
http://msdn.microsoft.com/en-us/library/d41t22sb(VS.71).aspxWenn das Programm weiter läuft ist diese Meldung natürlich irreführend.
Ich würde mal _CrtSetBreakAlloc verwenden um zu sehen was dort wer allokiert.
http://msdn.microsoft.com/en-us/library/4wth1ha5(VS.71).aspxEvtl. kommst Du dann dahinter...
-
Wenn ich in der InitInstance
_CrtSetBreakAlloc(62);
Setze, ist das Malör ja schon passiert. Wo müsste ich denn das Platzieren, das es vor dem Laden der DLL gesetzt wird?
-
In einer Deiner DLLs die zuvor geladen werden, oder Du setzt den Wert direkt in der MS-CRT selbst über den Debugger, nachdem diese geladen wurde.