C++ Problemy z GetOpenFileName()


(Kjanok) #1

Wtiam, kompilator, z którego aktualnie korzystam, to Visual Studio 2008, jednakże gdy ostatnio próbowałem skorzystać z funkcji GetOpenFileName, zaczął mi wywalać błąd, z którym nie potrafię się sam uporać... oto fragment kodu, który dotyczy mojego problemu

OPENFILENAME lol;

	  lol.lStructSize = sizeof(lol);

	  lol.hwndOwner=0;

	  lol.hInstance=0;

	  lol.lpstrFilter="pliki mp3 (*.mp3)\0*.mp3\0pliki wav(*.wav)\0*.wav\0\0";

	  lol.lpstrCustomFilter=0;

	  lol.nMaxCustFilter=0;

	  lol.nFilterIndex=1;

	  lol.lpstrFile=0;

	  lol.nMaxFile=512;

	  lol.lpstrFileTitle=0;

	  lol.nMaxFileTitle=256;

	  lol.lpstrInitialDir="C:/";

	  lol.lpstrTitle=0;

	  lol.Flags=OFN_CREATEPROMPT | OFN_READONLY;

	  lol.lCustData=0;

	  lol.lpfnHook=0;

	  lol.lpTemplateName=0;

	  GetOpenFileName(lol);

Gdy klikam na kompilację wyskakuje mi tyko napis GetOpenFileNameA: cannot convert parameter 1 from 'OPENFILENAME' to 'LPOPENFILENAMEA'

Próbowałem zmienić lol na LPOPENFILENAMEA, ale wtedy wywala mi 14 innych błędów i nie do końca wiem, jak sobie z tym poradzić... jakieś pomysły?


(Fiołek) #2

Jeśli byś sprawdził, to byś wiedział, że typy w Win32API zaczynające się od "LP" to wskaźniki na daną strukturę. Wystarczy zamiast "lol" dać "&lol". Następnym razem sprawdź w plikach nagłówkowych co to jest, zanim napiszesz na forum.