Šta je novo?

Problem sa zapisom u fajl, koji mu je ...

sucur_87

Slavan
Učlanjen(a)
15.09.2005
Poruke
54
Poena
309
Pozz narode, imam jedan problem koji mi citav dan zivce kida (win32 c++).
Dakle imam dvije globalne deklaracije static FILE *file1, *file2; za upise u dvije razlicite datoteke.
Prvi se nalazi u win32 proceduri i ona funkcionise odlicno, medjutim drugi se nalazi unutar dialog procedure tacnije u WM_COMMAND-u. E sada sve funkcionise odlicno, dok ne pozovem browse, nakon njega, ni jedan zapis u fajl nece da radi, pa cak i ovaj prvi koji nema nikakve veze sa file2 ?!!
Evo kod tog dialoga:
Kod:
BOOL CALLBACK NewProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{

case WM_INITDIALOG:
	
	ni.hwnd.itemTo = GetDlgItem(hwnd, IDC_TO);
	ni.hwnd.itemFrom = GetDlgItem(hwnd, IDC_FROM);
	ni.hwnd.itemName = GetDlgItem(hwnd, IDC_NAME);
	break;

case WM_COMMAND:
	switch LOWORD(wParam)
	{
	case IDOK:
		ni.info.nCategory = SendMessage(ni.hwnd.itemTo, CB_GETCURSEL, NULL, NULL);
		ZeroMemory(ni.info.myfilename, 100);
		SendMessage(ni.hwnd.itemName, WM_GETTEXT, (WPARAM) 100, (LPARAM)ni.info.myfilename);
		wsprintf(ni.info.writing, "%s %d %s %c", ni.info.ofnfilelocation,  ni.info.nCategory, ni.info.myfilename, '\n');
		file2 = fopen("sys.ini", "a+");
		if(!(fprintf(file2, "%s", ni.info.writing)))
			MessageBox(NULL, "Error writing file !", NULL, NULL);
		if(file2)
		fclose(file2);
		SendMessage(ni.hwnd.itemFrom, WM_SETTEXT, NULL, (LPARAM)"Ok!");
		SendMessage(ni.hwnd.itemName, WM_SETTEXT, NULL, (LPARAM)ni.info.myfilename);
		break;

	case IDC_BROWSE:
		ZeroMemory(ni.info.ofnfilename, 100);
		ZeroMemory(ni.info.ofnfilelocation, MAX_PATH);
		if(!(GetOpenFileName(&ni.info.ofn)))
			MessageBox(NULL, "GetOpenFileName function failed !", NULL, MB_OK);

		SendMessage(ni.hwnd.itemFrom, WM_SETTEXT, NULL, (LPARAM)ni.info.ofnfilename);
		break;
	}
	break;
}

return FALSE;
}
Dakle on zapisuje id, ime i lokaciju, kao i '\n', e sada sve dok samo zapisujem u fajl, ne dirajuci dugme WM_BROWSE, sve funkcionise, medjutim kada kliknem na browse i daberem neki fajl, ni jedan od ova dva zapisa ne funkcionise ?!!

Evo i deklaracija OPENFILENAME-a, koji se nalazi u win32 WM_CREATE, a klasa u kojoj se nalazi je globalna static NEWITEM ni;

Kod:
ni.info.ofn.lStructSize = sizeof(OPENFILENAME);
	ni.info.ofn.lpstrDefExt = "*";
	ni.info.ofn.lpstrFile = ni.info.ofnfilelocation;
	ni.info.ofn.nMaxFile = 400;
	ni.info.ofn.lpstrFilter = "All Files (*.*)\0*.*\0";
	ni.info.ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_EXTENSIONDIFFERENT;
	ni.info.ofn.lpstrTitle = "File Browser!";
	ni.info.ofn.hInstance = hInst;
	ni.info.ofn.hwndOwner = hwnd;
	ni.info.ofn.lpstrFileTitle = ni.info.ofnfilename;
	ni.info.ofn.nMaxFileTitle = 100;
 
Browse-om menjas CurrentDir, pa onda Sys.ini nije vise na mestu?
 
Nazad
Vrh Dno