DLL Listen- Absturz, Listen übergeben

haemmer

Grünschnabel
Ich habe ein Programm welches eine selber gemachte DLL benutzt.
Ich übergeben eine Liste in die DLL welche geändert wird .
Wenn ich zurück komme und ich die Liste weiter bearbeite stützt das Programm
im Debugmodus ab. Irgendwo bei der Speicherfreigabe..

… void deallocate(void _FARQ *_P, size_type)
{operator delete(_P); }

Ich nehme das Problem liege beim Speicher allozieren.
Wiess jemand wie man eine Liste sauber in eine DLL übergibt

Beispiel
Das ganze läuft unter MFC, aber ich glaube es ist nicht ein MFC Problem

class __declspec(dllimport) SHCrec
{
public:
unsigned char iSHCrec [5];
};

Programm welches die DLL Funktion aufruft
#include <list>

{
std::list<SHCrec> li_SHCrec;
SHCrec b ;
b.iSHCrec[0]= 1;

li_SHCrec.push_back(b);
Optimize(li_SHCrec); // call DLL
li_SHCrec.clear(); // hier ist der Absturz, nur im Debugen
..

}

DLL Seite
void Optimize(std::list<SHCrec>& li_SHCrec)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // this is for MFC
SHCrec a ;
a.iSHCrec[0]= 3;
li_SHCrec.push_back(a); // Element erweitern
}
 
Zurück