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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2011, 12:18   #1
Magnuse
Новичок
Джуниор
 
Регистрация: 21.01.2011
Сообщений: 5
Восклицание WIN32 API. Проблемы с созданием окна в консольном приложении

Вот код програмы
Код:
#include "windows.h"
LRESULT WINAPI WindowProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{WNDCLASSEX WindowClass;
static LPCTSTR szAppName=L"OFWin";
static LPCTSTR szWindName=L"OFWin1";
	MSG msg; HWND hWnd;
 WindowClass.cbSize=sizeof(WNDCLASSEX);
 WindowClass.style=CS_HREDRAW|CS_VREDRAW;
 WindowClass.lpfnWndProc=WindowProc;
 WindowClass.cbClsExtra=0;
 WindowClass.cbWndExtra=0;
 WindowClass.hInstance=hInstance;
 WindowClass.hIcon=LoadIcon(0, IDI_APPLICATION);
 WindowClass.hCursor=LoadCursor(0,IDC_ARROW);
 WindowClass.hbrBackground=static_cast<HBRUSH>(GetStockObject(GRAY_BRUSH));
 WindowClass.lpszMenuName=0;
 WindowClass.lpszClassName=szAppName;
 WindowClass.hIconSm=0;
 RegisterClassEx(&WindowClass);

hWnd=CreateWindowExW(0,szAppName,szWindName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, 0,0,hInstance,0);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,0,0,0)==TRUE){
	TranslateMessage(&msg);
	DispatchMessage(&msg);
}
return static_cast<int>(msg.wParam);
}
LRESULT WINAPI WindowProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)
{HDC hDC;
PAINTSTRUCT PaintSt;
RECT aRect;
switch(message)
{ 
case WM_PAINT:
	 hDC=BeginPaint(hWnd, &PaintSt);
	 GetClientRect(hWnd, &aRect);
	 SetBkMode(hDC,TRANSPARENT);
	 DrawText(hDC,L"But",-1,&aRect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
	 EndPaint(hWnd, &PaintSt);
	 return 0;
case WM_DESTROY:
	PostQuitMessage(0);
	return 0;
default:
	return DefWindowProc(hWnd,message,wParam,lParam);
}
}
НО МНЕ ПОЧЕМУ ТО КОМПИЛЯТОР МНЕ ВЫБИВАЕТ ДВЕ ОШИБКИ:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup MSVCRTD.lib fbd
Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\fbd\Debug\fbd.exe fbd
ПОМОГИТЕ РОЗОБРАТЬСЯ

Последний раз редактировалось Stilet; 23.01.2011 в 15:27.
Magnuse вне форума Ответить с цитированием
Старый 23.01.2011, 14:34   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Не совсем понимаю что ты делаешь.
Если ты хочешь создать консольное приложение, то зачем тебе регистрация окна и цикл обработки сообщений - это все нужно для создания обычных оконных приложений WIN32.

А ругается он потому, что в консольном приложении не находит функцию main или _tmain, а только Winmain.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить заголовок окна в консольном приложении interfeys Общие вопросы C/C++ 10 01.01.2011 15:24
win32 API.Visual Studio 2008.Создание проекта Win32 Aleksandr_Yanov Visual C++ 2 12.09.2010 13:09
Расширение экрана в консольном приложении FelixKoT Общие вопросы Delphi 1 19.02.2010 21:22
Борьба с крякозябрами в консольном приложении fs444 C++ Builder 16 15.12.2009 19:04