Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Приложение в Builder C++ 6 на API

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Приложение в Builder C++ 6 на API
Имя
Сообщение << Старые топики   Новые топики >>
Приложение в Builder C++ 6 на API - 2007-04-13 08:18:39.606666   
De}{is

Сообщений: 137
Оценки: 0
Присоединился: 2005-11-22 11:21:42
Поскажите, почему не работает следующий код? всю голову уже сломал. Хочется написать прорамму без использования библиотек но нефига не получается (
 
//—————————————————————————
#pragma hdrstop
//#include <vcl.h>
//—————————————————————————
#define MAX_LOADSTRING 100
//—————————————————————————
HANDLE hInst;
TCHAR szWindowClass[MAX_LOADSTRING] = "Заголовок";
TCHAR szTitle[MAX_LOADSTRING] = "cl_my_window";
ATOM          MyRegisterClass(HINSTANCE hInstance);
BOOL          InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{

 MSG msg;
 HACCEL hAccelTable;
        if (!MyRegisterClass(hInstance))
         return false;
 // (Инициализация приложения:)
 if (!InitInstance (hInstance, SW_SHOW)) {
  return FALSE;}
 // hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CTEST);
 //(Главный цикл обработки сообщений:)
 while (GetMessage(&msg, NULL, 0, 0))
 {
 //  if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
//  {
   TranslateMessage(&msg);
   DispatchMessage(&msg);
//  }
 }
 return (int) msg.wParam;
}
// Функция: MyRegisterClass()
// Предназначение: Регистрация класса окна
// Эта функция и ее использование необходимы, только если вы хотите,
// чтобы этот код был совместим с системой Win32 до функции
// 'RegisterClassEx', которая была добавлена в Windows 95.
// Это важно, вызвать эту функцию так, чтобы приложение получило
// 'хорошо отфарматированную' маленькую иконку, ассоциированную с ним.
ATOM MyRegisterClass(HINSTANCE hInstance)
{
 WNDCLASSEX wcex;
 wcex.cbSize = sizeof(WNDCLASSEX);
 wcex.style  = CS_HREDRAW | CS_VREDRAW;
 wcex.lpfnWndProc = (WNDPROC)WndProc;
 wcex.cbClsExtra  = 0;
 wcex.cbWndExtra  = 0;
 wcex.hInstance  = hInstance;
 // wcex.hIcon  = LoadIcon(hInstance, (LPCTSTR)IDI_CTEST);
 // wcex.hCursor  = LoadCursor(NULL, IDC_ARROW);
 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 // wcex.lpszMenuName = (LPCTSTR)IDC_CTEST;
 wcex.lpszClassName = szWindowClass;
 // wcex.hIconSm  = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
 return RegisterClassEx(&wcex);
}
//  Функция: InitInstance(HANDLE, int)
//  Предназначение: Функция сохраняет указатель экземпляра и создает окно
//  Комментарии:
//  В этой функции мы сохраняем указатель экземпляра в глобальной
//  переменной, создаем и отобажаем главное окно.
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance;// Сохраняем указатель экземпляра в глобальной переменной
   hWnd = CreateWindow(szWindowClass, szTitle, CW_USEDEFAULT,
      100, 100, 100, 100, NULL, NULL, hInstance, NULL);
   if (!hWnd)
   {
      return FALSE;
   }
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}
// Функция: WndProc(HWND, unsigned, WORD, LONG
// Предназначение:Обработка сообщений главного окна
// WM_COMMAND — обработка меню приложения
// WM_PAINT   - Прорисовка окна
// WM_DESTROY — отправка сообщения о выходе из программы
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 int wmId, wmEvent;
 PAINTSTRUCT ps;
 HDC hdc;
 switch (message)
 {
 case WM_PAINT:
  hdc = BeginPaint(hWnd, &ps);

  EndPaint(hWnd, &ps);
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hWnd, message, wParam, lParam);
 }
 return 0;
}
Post #: 1
RE: Приложение в Builder C++ 6 на API - 2007-04-14 00:10:48.116666   
voody

Сообщений: 958
Оценки: 0
Присоединился: 2005-02-06 22:28:30
Ну, так, правильно, а че ты хочешь? Откуда прога знает, что такое, например, HANDLE, когда в самом C++ такого типа данных нет, а windows.h ты к проге не подключил. Я считаю, что решением твоей проблемы является:

#include &lt;windows.h&gt;
Post #: 2
RE: Приложение в Builder C++ 6 на API - 2007-04-15 17:27:49.650000   
De}{is

Сообщений: 137
Оценки: 0
Присоединился: 2005-11-22 11:21:42
программа прекрасно компилится, но не работает, MyRegisterClass возвращает false, почему - не пойму….
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Приложение в Builder C++ 6 на API







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.