Приложение в Builder C++ 6 на API
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Приложение в 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; }
|
|
|
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 <windows.h>
|
|
|
RE: Приложение в Builder C++ 6 на API - 2007-04-15 17:27:49.650000
|
|
|
De}{is
Сообщений: 137
Оценки: 0
Присоединился: 2005-11-22 11:21:42
|
программа прекрасно компилится, но не работает, MyRegisterClass возвращает false, почему - не пойму….
|
|
|
|
|