Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помгите новичку, Error: Declaration terminated incorrectl 
:(
    Опции темы
max_crt
Дата 18.7.2003, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 10.7.2003

Репутация: нет
Всего: 1



Подскажите в чем ошибка?
Пытаюсь запустить пример из хэлпа к C++ Builder 5:
Код

//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
HINSTANCE hinst;  
HWND hwndMain;

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
   LPSTR lpszCmdLine, int nCmdShow)
{
   MSG msg;
   WNDCLASS wc;
   UNREFERENCED_PARAMETER(lpszCmdLine);

   // Register the window class for the main window.

   if (!hPrevInstance)
   {
       wc.style = 0;
//       wc.lpfnWndProc = (WNDPROC) WndProc;
       wc.cbClsExtra = 0;
       wc.cbWndExtra = 0;
       wc.hInstance = hInstance;

       wc.hIcon = LoadIcon((HINSTANCE) NULL,
           IDI_APPLICATION);
       wc.hCursor = LoadCursor((HINSTANCE) NULL,
           IDC_ARROW);
       wc.hbrBackground = GetStockObject(WHITE_BRUSH);
       wc.lpszMenuName =  "MainMenu";
       wc.lpszClassName = "MainWndClass";

       if (!RegisterClass(&wc))
           return FALSE;
   }

   hinst = hInstance;  // save instance handle

   // Create the main window.

   hwndMain = CreateWindow("MainWndClass", "Sample",

       WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
       CW_USEDEFAULT, CW_USEDEFAULT, (HWND) NULL,
       (HMENU) NULL, hinst, (LPVOID) NULL);

   // If the main window cannot be created, terminate
   // the application.

   if (!hwndMain)
       return FALSE;

   // Show the window and paint its contents.

   ShowWindow(hwndMain, nCmdShow);
   UpdateWindow(hwndMain);

   // Start the message loop.

   while (GetMessage(&msg, (HWND) NULL, 0, 0))

   {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
   }

   // Return the exit code to Windows.

   return msg.wParam;
}
//HWND hwndMain;
HWND hwndDlgModeless = NULL;
MSG msg;
HACCEL haccel;
//
// Perform initialization and create a main window.
//
 while(GetMessage(&msg, (HWND) NULL, 0, 0))
{
   if (hwndDlgModeless == (HWND) NULL ||
           !IsDialogMessage(hwndDlgModeless, &msg) &&
           !TranslateAccelerator(hwndMain, haccel,
               &msg))
   {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
   }
}


Компилятор на строке while(GetMessage(&msg, (HWND) NULL, 0, 0)) выдает ошибку
"[C++ Error] Unit1.cpp(82): E2040 Declaration terminated incorrectly"
В чем причина?




PM MAIL   Вверх
HexoGenus
Дата 19.7.2003, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Хммм... у тебя эта строчка находится за пределами функции main ...
а при выходе из main программа завершается... следовательно эта команда никогда не выполнится... удали ее smile.gif она тебе не нужна !
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
RAN
Дата 19.7.2003, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



max_crt, то что ты здесь написал - полная чушь, потому это и не работает.
Вероятно, это место хелпа, где объясняется как писать прогу, у которой главное окно - диалог, и показано, чем она будет отличаться от обычного приложения. А ты всё это одновременно залипил.
Это совершенно независимые фрагменты:
Код
//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
HINSTANCE hinst;  
HWND hwndMain;

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  LPSTR lpszCmdLine, int nCmdShow)
{
  MSG msg;
  WNDCLASS wc;
  UNREFERENCED_PARAMETER(lpszCmdLine);

  // Register the window class for the main window.

  if (!hPrevInstance)
  {
      wc.style = 0;
//       wc.lpfnWndProc = (WNDPROC) WndProc;
      wc.cbClsExtra = 0;
      wc.cbWndExtra = 0;
      wc.hInstance = hInstance;

      wc.hIcon = LoadIcon((HINSTANCE) NULL,
          IDI_APPLICATION);
      wc.hCursor = LoadCursor((HINSTANCE) NULL,
          IDC_ARROW);
      wc.hbrBackground = GetStockObject(WHITE_BRUSH);
      wc.lpszMenuName =  "MainMenu";
      wc.lpszClassName = "MainWndClass";

      if (!RegisterClass(&wc))
          return FALSE;
  }

  hinst = hInstance;  // save instance handle

  // Create the main window.

  hwndMain = CreateWindow("MainWndClass", "Sample",

      WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
      CW_USEDEFAULT, CW_USEDEFAULT, (HWND) NULL,
      (HMENU) NULL, hinst, (LPVOID) NULL);

  // If the main window cannot be created, terminate
  // the application.

  if (!hwndMain)
      return FALSE;

  // Show the window and paint its contents.

  ShowWindow(hwndMain, nCmdShow);
  UpdateWindow(hwndMain);

  // Start the message loop.

  while (GetMessage(&msg, (HWND) NULL, 0, 0))

  {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
  }

  // Return the exit code to Windows.

  return msg.wParam;
}

Код
//HWND hwndMain;
HWND hwndDlgModeless = NULL;
MSG msg;
HACCEL haccel;
//
// Perform initialization and create a main window.
//
while(GetMessage(&msg, (HWND) NULL, 0, 0))
{
  if (hwndDlgModeless == (HWND) NULL ||
          !IsDialogMessage(hwndDlgModeless, &msg) &&
          !TranslateAccelerator(hwndMain, haccel,
              &msg))
  {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
  }
}


Хотя похоже ты там тоже, что-то подправил

Это сообщение отредактировал(а) RAN - 19.7.2003, 16:28
PM MAIL ICQ   Вверх
max_crt
Дата 20.7.2003, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 10.7.2003

Репутация: нет
Всего: 1



Спасибо всем за помощь! Убрал код после winmain и прога компильнулась.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.