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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 19:51   #1
vassel
 
Регистрация: 17.01.2010
Сообщений: 9
По умолчанию Почему DialogBox возвращает (-1) ?

Всем привет! Начал писать программу на Visual C++ (Microsoft Visual Studio 6.0) и сразу же столкнулся с проблемой. Вроде всё примитивно и просто, а диалоговое окно почему-то не создаётся. DialogBox возвращает -1, а почему - не понимаю. В чём может быть дело?
Заранее спасибо!

Код:
#include <windows.h>
#include <stdio.h>
#include "resource.h"
 
 
 
BOOL CALLBACK DlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
        switch (uMsg)
        {
        case WM_INITDIALOG:
                return FALSE;
        }
 
        return FALSE;
}
 
 
 
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                        LPSTR lpCmdLine, int nShowCmd )
{
        DialogBox (hInstance, MAKEINTRESOURCE (IDD_DIALOG1),
                                                NULL, DlgProc);
        return 0;
}
vassel вне форума Ответить с цитированием
Старый 17.01.2010, 20:35   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

1. На RC-файл и на resource.h можно взглянуть?
2. Не имеет отношения к проблеме, но, по-любому, в DlgProc() хорошо бы обработчики WM_DESTROY и WM_CLOSE прописать.
Vago вне форума Ответить с цитированием
Старый 17.01.2010, 22:06   #3
vassel
 
Регистрация: 17.01.2010
Сообщений: 9
По умолчанию

Вот resource.h:
Код:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by dialog1.rc
//
#define IDD_DIALOG1                     101
#define IDC_EDIT1                       1003

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        102
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1004
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
Вот ссылка на архив со всем проектом: Optima.rar (файл Optima.rar)

Насчёт WM_DESTROY и WM_CLOSE - понимаю, просто решил максимально упростить код, чтобы разобраться в проблеме.
vassel вне форума Ответить с цитированием
Старый 17.01.2010, 23:05   #4
vassel
 
Регистрация: 17.01.2010
Сообщений: 9
По умолчанию

GetLastError() выдаёт код ошибки 1812 (Наполеон вспоминается =) ).
Я посмотрел в MSDN, этот код трактуется так: ERROR_RESOURCE_DATA_NOT_FOUND, The specified image file did not contain a resource section. Какие-то проблемы с ресурсом? Не понимаю, какие.
vassel вне форума Ответить с цитированием
Старый 17.01.2010, 23:22   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

1. Откройте dsw-файл в Visual Studio 6.
2. В левом окне, через закладку FileView, добавьте файл resource.h в группу файлов (папку) Header Files.
3. Там же добавьте файл dialog1.rc в группу файлов (папку) Resource Files.
4. Поменяйте последний оператор в DlgProc() на return FALSE (так, как в коде в Вашем первом сообщении здесь)!!
5. Build | Rebuild All
Vago вне форума Ответить с цитированием
Старый 17.01.2010, 23:30   #6
vassel
 
Регистрация: 17.01.2010
Сообщений: 9
По умолчанию

Большое спасибо, Vago!
Теперь, конечно, всё работает. Я совсем забыл, что надо вручную добавлять эти файлы в проект. Вообще, это нелогично как-то, ведь я же создаю .rc-файл в этом проекте, а resource.h вообще автоматически создаётся. Почему они автоматически не включаются в состав проекта?

Ещё раз огромное спасибо за помощь!
vassel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что возвращает эта функция? D[I]K Общие вопросы C/C++ 9 07.10.2009 00:32
Почему функция не возвращает никакое значение? Тупой Общие вопросы Delphi 1 31.05.2009 17:31
idHTTP не возвращает код страницы Paradoxer Работа с сетью в Delphi 0 15.03.2008 20:27
mysql_num_rows - не возвращает строки Stema PHP 15 31.01.2008 16:14