DLL dbgheap.c Line 1011 Fehler

Hallo,

ich arbeite an einem DLL Projekt und habe als Testprogramm eine Konsolen Anwendung. Es gibt nur eine DLL Funktion. Diese Funktion hat
Parameter(int, int*, …).
In meinem Problemfall die Parameter(int, int*, char*, int, int*)
Diese Dll Funktion lädt eine Klasse (static Klassenname Objekt:wink: und ist im Dll Projekt Global, und wurde vor dem DLLMAIN deklariert.
In dieser Klasse lade ich nur mit new eine neue Klasse in den Heap und lösche sie auch wieder im Destruktor (delete NeueKlasse). Von der neuen Klasse lade ich im Konstruktor ein Array von einer Struktur in den Heap( ptr = malloc(sizeof(struktur)*26), mit new habe ich schon probiert, klappt net).
Dann lass ich das CDROM Laufwerk öffnen und gebe in den Parametern(int, int*, char*, int, int*), die ich bis dahin durchgereicht habe, den Status zurück.
Die HaupDllFunktion verlasse ich erfolgreich mit Werten usw.
Aber beim verlassen der int main(), springe ich in meinen Destruktor der neuen Klasse (wo ich das Struktur Array im Konstruktor angelegt hatte) und versuche das StrukturenArray zu löschen ( free(ptr) ) und dort geht er mir in den Wald.
Folgen:

  • Benutzerdefinierter Haltpunkt an Adresse xxx geladen. Weiter debuggen…
  • Debug Assertion Failed
  • Expression: _CtrlValidHeapPointer(pUserData)

und das wars…

Ich habe den Verdacht, dass es einen Konfilkt zwichen den Heapbereichen kommt. z.B. dass man versucht aus dem Konsolenprojekt ein delete oder free in der DLL verwendet.
Mein anderer verdacht ist es, weil ich die CRT von Windows und die LIB von wxWindows im Dll Projekt verwende, dass dort ein Versionenskonflikt entsteht. Sprich new und delete sind in beiden Libs überschrieben.

So wer mir nun in meinem Gedankensgang folgen kann. Bitte Hilfe ;o)

Habe vergessen einen Fehler zu erwähnen:

HEAP[Konsole.exe]: Invalid Address specified to RtlValidateHeap( 13b0000, 13b6ee8 )