Ho provato!!! La finestra non si apre per la selezione del file e quindi ho subito degli errori sulle convalide. Ti posto il codice:
codice:
float * matrice;
FILE *inFile;
int i,j;
int width=0,height=0;
OPENFILENAME ofn;
char szFile[260];
HWND hwnd;
HANDLE hf;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// Display the Open dialog box.
if (GetOpenFileName(&ofn)==TRUE)
/*hf = CreateFile(ofn.lpstrFile,GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL);*/
inFile = fopen(ofn.lpstrFile,"r");
if(inFile==NULL)
{
OpenSteer::OpenSteerDemo::errorExit("Impossibile aprire il File del plugin successivo per il caricamento dei dati :\n");
}
if(fscanf(inFile,"%d %d",&height,&width)!=2)
{
OpenSteer::OpenSteerDemo::errorExit("Impossibile leggere le dimensioni dell'array dal File.\n");
fclose(inFile);
}
//alloca la memoria necessaria
matrice = (float*)malloc(sizeof(*matrice)*width*height);
if(matrice==NULL)
{
OpenSteer::OpenSteerDemo::errorExit("Impossibile leggere le dimensioni dell'array dal File.\n");
fclose(inFile);
}
//leggi i valori della matrice considerandola come un vettore width height
for(i=0; i<width*height; i++)
{
if(fscanf(inFile,"%f",&matrice[i])!=1)
{
OpenSteer::OpenSteerDemo::errorExit("Il File non contiene abbastanza dati.\n");
free(matrice);
fclose(inFile);
}
}
fclose(inFile);
La finestra per la selezione del file non viene aperta e quindi anche inFile risulta essere nullo penso.