fenster layer?
-
super danke!
is der common dialog nicht mfc?edit: ich hab doch das hauptfenster als parent?!
HWND fileSearch = CreateWindowEx ( WS_EX_TOOLWINDOW, szName, "Oeffnen", WS_CHILD | WS_OVERLAPPEDWINDOW /*| WS_POPUPWINDOW*/ , 320, 5, 400, 150, hwnd, (HMENU)3, NULL, NULL ); ShowWindow (fileSearch, SW_SHOWNORMAL); UpdateWindow (fileSearch);
-
vieeeeell zu laaaangsam.

nein der common dialog ist kein mfc.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/UsingCommonDialogBoxes.asp#open_file
-
zum edit von pixartist
ich dacht wir reden über dialoge.
-
??? nein ich meinte mit dialog ein fenster genau wie den common dialog...ich nehm jetzt mal den ^^ nur hab ich das problem, dass ich nicht weiss wie ich denn nun an den inhalt der datei komme! das is im msdn auchnicht beschrieben...?
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? SetWindowText(textField, /*Woher krieg ich den inhalt der datei??*/); SetWindowText(fileZeiger, szFile);edit achja un könnt ihr mir nochmal erklären was der unterschied zwischen dialog und fenster ist?
-
Na, GetOpenFileName / GetSaveFileName liefert Dir den Pfad zur Datei, die der User geöffnet/gespeichert haben will.
Wenn Du den Pfad hast, mußt Du sie schon selbst öffnen (CreateFile... OPEN_EXISTING) und auslesen (ReadFile...) bzw. schreiben (WriteFile...)
-
pixartist schrieb:
edit achja un könnt ihr mir nochmal erklären was der unterschied zwischen dialog und fenster ist?
im prinzip sind beides fenster.
ich ging nur davon aus das dein dialog/fenster
mit dialogbox oder ähnliches aufrufst.aber vergleiche selber
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows.asp
-
aso
ja danke habs grad auch im msdn gefunden... trotzdem klappts noch nicht
memory errorunsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; ReadFile( hf, lpbuffer, nRead-1, NULL, NULL );
-
TCHAR* DiaOpen(bool open) { TCHAR* buffer = new TCHAR[300]; ZeroMemory(buffer, 300); lstrcpy(buffer,TEXT("*")); OPENFILENAME ofn; ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hMain; ofn.hInstance = hInstance; ofn.lpstrFilter = TEXT("All File Types"); ofn.lpstrCustomFilter = NULL; ofn.nMaxCustFilter = NULL; ofn.nFilterIndex = 14; ofn.lpstrFile = buffer; ofn.nMaxFile = 300; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = NULL; ofn.lpstrInitialDir = NULL; ofn.lpstrTitle = TEXT("Öffnen - Titel"); if (!(open)) ofn.lpstrTitle = TEXT("Speicher - Titel"); ofn.Flags = OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_NONETWORKBUTTON|OFN_PATHMUSTEXIST; ofn.nFileOffset = NULL; ofn.nFileExtension = NULL; ofn.lpstrDefExt = NULL; ofn.lCustData = NULL; ofn.lpfnHook = NULL; ofn.lpTemplateName = NULL; if( (!(GetOpenFileName(&ofn))) && (0==CommDlgExtendedError())) lstrcpy(buffer,TEXT("CANCELLED")); //Wennnd er suer beendet oder abbricht return buffer; }
-
aber wieso geht das denn nicht:
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(int(nRead),&len,36); MessageBox(NULL, &len, "",0); /*ReadFile( hf, lpbuffer, nRead, NULL, NULL ); */ SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);edit: LOL die funktion da oben gibt nur den filename zurück oO
-
Ist dir dann jetzt alles klar, oder gibt's noch Probleme?
-
wahahah ich kriege mit tolgas funktion doch immernoch nur den DATEINAMEN zurück! ich will aber den dateiinhalt! und bei meiner funktion kriege ich nen memory error obwohl ich mich an msdn halte!!
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(nRead,&len,36); MessageBox(NULL, &len, "",0);//<--------------HIER ReadFile( hf, lpbuffer, nRead, NULL, NULL ); SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);bei der msg box bekomme ich seltsamerweise immer sowas: 13c oder 2f5 oder sowas! auf jedenfall krieg ich nen memory fehler beim ausführen des ReadFile() !!! wiesoe

-
- len sollte eine grösse habe wie zb 20
- der msgbox übergibst du adresse von len, & weglassen
-
char *len = new char[5]; len[5] = 0; itoa(nRead,len,36); MessageBox(NULL, len, "",0);so?
macht keinen unterschied, aber die msgbox ist ja nicht das problem, sonder ReadFile() !
die msgbox hab ich ja nur um den wert zu überprüfen!edit:irgendwas verweist auf 0x000000 ?! deswegen der memory error..
-
pixartist schrieb:
edit:irgendwas verweist auf 0x000000 ?! deswegen der memory error..
"irgendwas"?
Was denn genau? Bei mir zeigt "irgendwas" auch immer auf NULL...

Außerdem sehe ich nirgends, wo Du die Datei auch ausliest... nirgendwo wird bei Dir ReadFile() aufgerufen... oder sehe ich's nur nicht?
-

also erstmal: 0x77e5abd2 verweist auf Speicher 0x00000000 der vorgang written konnte nicht auf den speicher ausgeführt werden.
und zweitens: natürlich benutze ich readfile!!
OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HANDLE hf; // Los Gehts (MSDN krams) //Memory leeren: ZeroMemory(&ofn, sizeof(ofn)); //Grösse, Owner, File... ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // //Anm,: ??? ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); //oO wat is wacken? unsigned long nRead = GetFileSize(hf,NULL); char *lpbuffer = new char[nRead]; lpbuffer[nRead] = 0; SetFilePointer(hf,0,NULL,FILE_BEGIN); char len; itoa(nRead,&len,36); MessageBox(NULL, &len, "",0);//<--------------HIER ReadFile( //<----------------ReadFile() !!! hf, //---- lpbuffer, //---- nRead, //---- NULL, //---- NULL //---- ); //---- Bis hier! SetWindowText(textField, lpbuffer); SetWindowText(fileZeiger, szFile);
-
pixartist schrieb:
also erstmal: 0x77e5abd2 verweist auf Speicher 0x00000000 der vorgang written konnte nicht auf den speicher ausgeführt werden.
Also mit der Angabe kann hier keiner was anfangen... welcher Zeiger zeigt denn auf NULL (frag Deinen Debugger mal, der weiß sowas).
-
is der code denn grundsätzlich ok?
wenn ich den debugger starte kriege ich:Geladene Symbole für "D:\Programme\C++ files\MSDev98\MyProjects\test\Debug\test.exe" "C:\WINDOWS\system32\ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\user32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\gdi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\comdlg32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\shlwapi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\msvcrt.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\comctl32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\shell32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\uxtheme.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\Programme\Logitech\MouseWare\system\LgWndHk.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\msctf.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\Programme\Gemeinsame Dateien\Logitech\Scrolling\LGMSGHK.DLL" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\msvcp60.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\mslbui.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\oleaut32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\ole32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\apphelp.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\clbcatq.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\comres.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\version.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\setupapi.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\ntshrui.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\atl.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\netapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\userenv.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. "C:\WINDOWS\system32\shdocvw.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden. Thread 0x330 wurde mit Code 0 (0x0) beendet. Thread 0xA98 wurde mit Code -1073741819 (0xC0000005) beendet. Thread 0xAB4 wurde mit Code -1073741819 (0xC0000005) beendet. Thread 0xAA4 wurde mit Code -1073741819 (0xC0000005) beendet. Thread 0xAA8 wurde mit Code -1073741819 (0xC0000005) beendet. Thread 0xA74 wurde mit Code -1073741819 (0xC0000005) beendet. Das Programm "D:\Programme\C++ files\MSDev98\MyProjects\test\Debug\test.exe" wurde mit Code -1073741819 (0xC0000005) beendet.edit: ich hoffe das ist was du willst, ich kenn mich nicht mitm debugger aus. bin anfänger

-
pixartist schrieb:
is der code denn grundsätzlich ok?
Wenn Du mit dem ständigen Abstürzen leben kannst, ja.

pixartist schrieb:
wenn ich den debugger starte kriege ich:
Möchtest Du, bevor wir hier weitermachen, nicht erstmal die Bedienung und den Umgang mit einem Debugger lernen?
Such mal hier im Forum nach dem Wort "Debugger", ich glaube hier hatte mal jemand ein kleines Grundlagentutorial gepostet (BreakPoints usw.)
-
Fällt das niemandem auf?
char *len = new char[5]; len[5] = 0; // Du schreibst hier über die Grenzen des Arrays! itoa(nRead,len,36); MessageBox(NULL, len, "",0)
-
ja gern, erklähr doch mal
äh muss ich jetzt was kompliziertes machen oder ist das was du möchtest n einfacher handgriff? wenn es was einfaches ist würde ich mich freuen wenn du mir kurz sagst was ich machen muss, dann werde ich mich später mit dem debugger beschäftigen
wenns komplizierter ist, kannste mir n tut oder so empfehlen?edit: hab jetzt n debug gestartet..und beim fehler zeigt er mir folgende zeile an:
77E5ABD2 mov dword ptr [ecx],eaxedit: aziz, den messagebox kram hab ich schon lange rausgenommen...