DLL - delphi/c++
mamy definicję taliby rekordów w delphi
type
RecKey = record
id : byte;
nazwa: pchar;
end;
TLstKey = array[1..10] of RecKey;
teraz taka tablica 'TLstKey' jest zwracana przez wyeksportowaną funkcję delphi
Jak odwołać się do takiej funkcji w c++,
próba deklaracji wskaźnika do 10 elementowej tablicy struktury RecKey, zdefiniowanej w c++, kończy się błędem przy ładowaniu funkcji, Jeśli zadeklaruję pamięć, aby pomieścić taką tablicę nie mam problemu, ale dane są niepoprawne - śmieci.
typedef struct Key {
unsigned char id ;
char nazwa ;
};
typedef Key tblKey ;
//...
tblkey mkey;
typedef void* (*pLoadKey)();
pLoadKey LoadKey;
LoadKey = (pLoadKey)fdll.GetSymbol("LoadKey");
mkey= new Key[10];
mkey = static_cast<tblKey>(LoadKey());
//dane są bzdurne
log(wxString::Format("%i",(mkey[0]).id));
log(wxString::Format("%s",(mkey[0]).nazwa));