Re: [Dev-C++] saving text from EDIT control
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: Per W. <pw...@ia...> - 2005-06-07 07:14:36
|
Hrm. Check once more how you use lpstrFile and nMaxFile.
You want your file name in a writeable buffer.
saveFileInfo.lpstrFile = "Untitled.txt"
assumes lpstrFile to be a pointer.
saveFileInfo.nMaxFile = sizeof(saveFileInfo.lpstrFile)
assumes lpstrFile to be a character buffer - a pointer always have a fixed
size and doesn't say anything about number of characters possible to store
in the buffer.
/Per W
On Mon, 6 Jun 2005, Noorez Kassam wrote:
> Sry, resend.
>
> For my program, I need a part that is like a simple text editor, but I can't
> get the 'save' function to work. This error is received while debugging :
> 'An Access Violation (Segmentation Fault) raised in your program' at the
> marked line. I attached the entire program so that you can try to run it.
>
> void SaveText(HWND main)
> {
> int length;
> char* buffer;
>
> length = GetWindowTextLength(GetDlgItem(main, IDC_MAIN_EDIT));
>
> if(length>0)
> {
> OPENFILENAME saveFileInfo;
>
> saveFileInfo.lStructSize = sizeof(saveFileInfo);
> saveFileInfo.hwndOwner = main;
> saveFileInfo.hInstance = gThisInstance;
> saveFileInfo.lpstrFilter = ".TXT"+'\0';
> saveFileInfo.lpstrCustomFilter = '\0';
> saveFileInfo.nMaxCustFilter = 0;
> saveFileInfo.nFilterIndex = 1;
> saveFileInfo.lpstrFile = "Untitled.txt";
> saveFileInfo.nMaxFile = sizeof( saveFileInfo.lpstrFile );
> saveFileInfo.lpstrFileTitle = 0;
> saveFileInfo.lpstrInitialDir = "C:\\";
> saveFileInfo.lpstrTitle = "Hey";
> saveFileInfo.nFileOffset = 0;
> saveFileInfo.nFileExtension = 0;
> saveFileInfo.lCustData = 0;
> saveFileInfo.lpstrDefExt = 0;
> saveFileInfo.Flags = OFN_HIDEREADONLY;
> saveFileInfo.lpfnHook = (LPOFNHOOKPROC)0;
> saveFileInfo.lpTemplateName = 0;
>
>
> GetSaveFileName(&saveFileInfo); //error is here in debugging
> buffer = new char[length+1];
> GetDlgItemText(main, IDC_MAIN_EDIT, buffer, length + 1);
> ifstream saveTextFile("SaveText.txt", ios::binary);
> saveTextFile >> buffer;
> saveTextFile.close();
> delete buffer;
>
> }
> }
>
|