DLL fejl
Hej Venner!Jeg sidder og nosser med noget statisk dll. problemet er at når jeg har kaldt min dll fil, og fået min messageBox frem i den application jeg kalder min dll fil fra crasher det og en eller anden hukommelses fejl opstår.
Den skriver i fejlmeddelsen noget om en dellocator.
Jeg har koden her:
H fil.
extern \"C\" void DLL_EXP SayHello(HWND);
class DLL_EXP MyClass{
public:
MyClass (HWND hWnd);
string getAdresse(){return adresse;}
string getNavn(){return navn;}
string getPostnr(){return postnr;}
string getBy(){return by;}
void setNavn(string na){navn=na;}
void setPostnr(string po){postnr=po;}
void setBy(string b){by=b;}
void setAdresse(string ad){adresse=ad;}
void setBilnr(string Bil){bilnr=Bil;}
bool getPassager(string billet);
private :
string bilnr;
string by;
string adresse;
string postnr;
string navn;
HWND hWnd;
};
CPPfil.
#pragma argsuse
#include \"UnitDLL.h\"
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
//Extern funktion;
void DLL_EXP SayHello(HWND hWnd)
{
MessageBox(hWnd,\"Hej Lars\",\"DLL MessageBox\",MB_OK | MB_ICONEXCLAMATION);
}
//Konstrukter
MyClass::MyClass(HWND hWnd)
{
hWnd=hWnd;
}
bool MyClass::getPassager(string bil)
{
DataMod->Query1->Close();
DataMod->Query1->SQL->Clear();
DataMod->Query1->SQL->Add(\"select navn,adresse,postnr \");
DataMod->Query1->SQL->Add(\"from Passager where bilnr = :BIL \");
DataMod->Query1->ParamByName(\"BIL\")->AsString=bil.c_str();
DataMod->Query1->Open();
DataMod->Query1->First();
if(DataMod->Query1->Eof)
return false;
navn=DataMod->Query1->FieldByName(\"navn\")->AsString.c_str();
adresse=DataMod->Query1->FieldByName(\"adresse\")->AsString.c_str();
postnr=DataMod->Query1->FieldByName(\"postnr\")->AsString.c_str();
return true;
}
Knappen i min application.
MyClass mm(Application->Handle);//Extern funktion
mm.setNavn(\"lars\");
