23. november 2000 - 14:05
Der er
2 kommentarer og
1 løsning
Hvorfor virker det ikke?
PWTGroup LoadGrpFromFile(char *FileName){
PWTGroup Result;
void *Buff;
FILE *GrpFile;
GrpFile=fopen(\"Level1.wssc\",\"rb\");
Buff=malloc(_filelength(_fileno( GrpFile )));
fread( Buff,sizeof(Buff),1,GrpFile);
fclose(GrpFile);
Result=(PWTGroup)Result;
return Result;
}
E-/mil
23. november 2000 - 15:24
#1
Hvilken part af det er det der ikke virker ??? en sidste cast skal vel være fra void* Buff til Result og ikke Result til Result, sådan som du har skrevet:
PWTGroup LoadGrpFromFile(char *FileName)
{
PWTGroup Result;
void *Buff;
FILE *GrpFile;
GrpFile=fopen(\"Level1.wssc\",\"rb\");
Buff=malloc(_filelength(_fileno( GrpFile )));
fread( Buff,sizeof(Buff),1,GrpFile);
fclose(GrpFile);
Result=(PWTGroup)Buff;
return Result;
}
Burde du ikke i stedet overføre PWTGroup\'en som parameter, sådan at du ikke behøver at allokere hommelse til den (som du jo ikke kan frigive):
bool LoadGrpFromFile(PWTGroup& Result, char *FileName)
{
FILE *GrpFile;
if ((GrpFile=fopen(\"Level1.wssc\",\"rb\")) != NULL)
{
fread( Result, sizeof(Result),1,GrpFile);
fclose(GrpFile);
return true;
};
return false;
}
Men denne model får du også mulighed for at checke om det gik godt eller ej.