Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 11:46   #1
Roman_Xxx
Новичок
Джуниор
 
Регистрация: 24.05.2010
Сообщений: 3
Злость unknown software exception (0x00000fd) в приложении по адресу 0x00401569

Всем привет) Помогите разобратся с ошибкой.

Код:
#include <windows.h>
 
HINSTANCE hInstance;
 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
 
ATOM RegMyWindowClass(HINSTANCE, LPCTSTR);
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrewInstance, LPSTR lpCmdLine, int nCmdShow)
{
 
        LPCSTR lpzClass = TEXT("My Window Class");
 
        if (!RegMyWindowClass(hInstance, lpzClass))
                return 1;
 
        RECT screen_rect;
        GetWindowRect(GetDesktopWindow(), &screen_rect);
        int x1=screen_rect.right/4+150;
        int y1=screen_rect.bottom/4;                                                    
 
 
                                                                                                
        HWND hWnd=CreateWindowEx(WS_EX_NOPARENTNOTIFY, lpzClass, TEXT("Dialog Window"), WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE, x1, y1, 300, 300, NULL, NULL, hInstance, NULL); 
 
        HWND hWnd2=CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | ES_CENTER | ES_UPPERCASE , 30, 20, 200, 22, hWnd, (HMENU)10001, hInstance, NULL);
        HWND hWnd3=CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | ES_CENTER | ES_UPPERCASE , 30, 70, 200, 22, hWnd, (HMENU)10002, hInstance, NULL);
        HWND hWnd4=CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "", WS_CHILD | WS_VISIBLE | ES_CENTER | ES_UPPERCASE , 30, 180, 200, 22, hWnd, (HMENU)10002, hInstance, NULL);
        HWND hWnd5=CreateWindow("button", "...", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 240, 20, 20, 22, hWnd, (HMENU)20001, hInstance, NULL); 
        HWND hWnd6=CreateWindow("button", "...", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 240, 70, 20, 22, hWnd, (HMENU)20002, hInstance, NULL); 
        HWND hWnd7=CreateWindow("button", "...", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 240, 180, 20, 22, hWnd, (HMENU)20003, hInstance, NULL); 
        HWND hWnd8=CreateWindow("button", "Копіювати", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 30, 120, 100, 22, hWnd, (HMENU)20004, hInstance, NULL);
        HWND hWnd9=CreateWindow("button", "Перемістити", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 160, 120, 100, 22, hWnd, (HMENU)20005, hInstance, NULL);
        HWND hWnd10=CreateWindow("button", "Видалити", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 30, 220, 230, 22, hWnd, (HMENU)20006, hInstance, NULL);
 
 
 
        if(!hWnd) return 2;
 
        MSG msg={0}; 
        int iGetOk=0; 
        while ((iGetOk=GetMessage(&msg, NULL, 0, 0))!=0)
        {
                if (iGetOk==-1) return 3; 
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
 
 
        return msg.wParam;
        
}
 
 
ATOM RegMyWindowClass(HINSTANCE hInst, LPCTSTR lpzClassName)
{               
  WNDCLASS wcWindowClass = {0}; 
  wcWindowClass.lpfnWndProc = (WNDPROC)WndProc; 
  wcWindowClass.style =CS_VREDRAW; 
  wcWindowClass.hInstance = hInst;  
  wcWindowClass.lpszClassName = lpzClassName;   
  wcWindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);  
  wcWindowClass.hbrBackground = (HBRUSH)COLOR_MENU; 
  return RegisterClass(&wcWindowClass); 
}
 
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch(message)
        {
 
        case  WM_INITDIALOG:
 
                  break;
        case WM_HOTKEY: 
        
                  break;
 
        case WM_COMMAND:
                
                 if (LOWORD(wParam)==20003)
                {
                        OPENFILENAME OpenFileName;
                        memset(&OpenFileName, 0, sizeof(OPENFILENAME));
                        OpenFileName.lStructSize        = sizeof(OPENFILENAME);
        
                        if(GetOpenFileName(&OpenFileName)==TRUE)
                        {
                                
                        }
                }
                        
                  break;
 
        case WM_TIMER:
 
                        break;
        case WM_CLOSE:
                        SendMessage(hWnd, WM_CLOSE, 0, 0);
                        break;
        default:
                return DefWindowProc(hWnd, message, wParam, lParam);
        }
 
        return 0;
}
OPENFILENAME OpenFileName;
memset(&OpenFileName, 0, sizeof(OPENFILENAME));
OpenFileName.lStructSize = sizeof(OPENFILENAME);
if(GetOpenFileName(&OpenFileName)== TRUE)
{
}

При закритии диалога выбора файлов он закривается все нормально, но потом при закритии основной програми (если до того был открит, закрит диалог) вискакивает ошибка

Исключение unknown software exception (0x00000fd) а приложении по адресу 0x00401569
Roman_Xxx вне форума Ответить с цитированием
Старый 24.05.2010, 12:04   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Вы зачем здесь сделали замкнутый цикл? Стек переполняется вот и валится все.

Код:
 case WM_CLOSE:SendMessage(hWnd, WM_CLOSE, 0, 0);
                        break;

Вот:

Код:
 case WM_CLOSE: PostQuitMessage(0);
                         break;
counter вне форума Ответить с цитированием
Старый 24.05.2010, 12:44   #3
Roman_Xxx
Новичок
Джуниор
 
Регистрация: 24.05.2010
Сообщений: 3
По умолчанию

Спасибо counter!
Roman_Xxx вне форума Ответить с цитированием
Старый 02.06.2010, 19:57   #4
progamerspb
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 2
По умолчанию unknown software exception 0x00000fd в приложении по адресу 0x00401569

Помогите.

При установке новых игр, скаченных через инет возникает ошибка unknown software exception

Дрова на видюха переустанавливал - все тож самое.
Мож это из-за майкрософт обновы, которую я ставил недавн?
progamerspb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции класса по адресу VintProg Общие вопросы Delphi 9 03.11.2009 05:17
Failed to initialize client - unknown error NITRUMIN Софт 7 11.08.2009 21:31
Взятие значения по адресу nusik Общие вопросы C/C++ 1 25.05.2009 01:59
\CB2src\menu.cpp(1) : error C2018: unknown character '0xef' regfre Общие вопросы C/C++ 6 08.02.2009 01:41
Procedure unknown yulia БД в Delphi 9 26.01.2009 01:33