Hallo,
ich habe in BorlandC5 ein
DLL erstellt, ein Array definiert der in eine Funktion mit Daten gefüllt wird und ein Ergebnis zurückliefert wie folgt:
Code:
//############# BC5 ##################
extern "C" unsigned int *MP(int a, int b);
unsigned int TMJ[5][22]={0};
unsigned int* _export MP(int a, int b)
{
for (i=0; i<=4; i++)
{
for (j=0; j<=21; j++)
TMJ[i][j]= i+j;
}
return(&TMJ[0][0]);
}
//############ Delphi ##############
Var Adr: ^Word;
Adr:= MP(2, 5);
Edit1.Text:= IntToStr(Adr^);
####### Ergebnis ###################
MP(2, 5) liefert in Edit1.Text den Wert: 65534 und nicht 0
Word hat als Type ein Wertbereich von 0-65535
//########### Fragen ###############
1. Warum kriege ich nicht den zugewiesenen Wert 0 beim TMJ[0][0]sondern 65534?
2. wie kann ich dann von Delphi aus auf die anderen einzelnen "unsigned int" Felder zugreifen ?
MFG