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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

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

Вот код програмы
Код:
#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(WNDCLASSE X);
WindowClass.style=CS_HREDRAW|CS_VRE DRAW;
WindowClass.lpfnWndProc=WindowProc;
WindowClass.cbClsExtra=0;
WindowClass.cbWndExtra=0;
WindowClass.hInstance=hInstance;
WindowClass.hIcon=LoadIcon(0, IDI_APPLICATION);
WindowClass.hCursor=LoadCursor(0,ID C_ARROW);
WindowClass.hbrBackground=static_ca st<HBRUSH>(GetStockObject(GRAY_BRUS H));
WindowClass.lpszMenuName=0;
WindowClass.lpszClassName=szAppName ;
WindowClass.hIconSm=0;
RegisterClassEx(&WindowClass);

hWnd=CreateWindowExW(0,szAppName,sz WindName,WS_OVERLAPPEDWINDOW,CW_USE DEFAULT, 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,l Param);
}
}
НО ПОЧЕМУ ТО КОМПИЛЯТОР МНЕ ВЫБИВАЕТ ДВЕ ОШИБКИ:
Ошибка 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
ПОМОГИТЕ РАЗОБРАТЬСЯ

Последний раз редактировалось JTG; 21.01.2011 в 16:46.
Magnuse вне форума Ответить с цитированием
Старый 21.01.2011, 13:27   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

создавайте не консольный проект, а проект Win32
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.01.2011, 13:39   #3
Magnuse
Новичок
Джуниор
 
Регистрация: 21.01.2011
Сообщений: 5
По умолчанию

Я создал проект Win32(приложение Windows->пустой проект), но мне
все равно Microsoft Visual Studio 2008 выбивает ошибки:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup MSVCRTD.lib fsefwada
Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\fsefwada\Debug\fsefwa da.exe fsefwada

Последний раз редактировалось Magnuse; 21.01.2011 в 13:42.
Magnuse вне форума Ответить с цитированием
Старый 21.01.2011, 13:41   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

судя по ошибке проект консольный, так как функция main это в консоли
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.01.2011, 13:53   #5
Magnuse
Новичок
Джуниор
 
Регистрация: 21.01.2011
Сообщений: 5
Восклицание

Я исправил. Ура) Всем кто будет мучаться с етой проблемой подсказка надо в опциях проекта вместо Юникод-кодировки поставить многобитовую кодировку. Спасибо за подсказки Феникс(твои замечания натолкнули меня к решению проблемы).
Magnuse вне форума Ответить с цитированием
Старый 21.01.2011, 23:04   #6
Freddi Krjuger
Пользователь
 
Регистрация: 20.08.2010
Сообщений: 37
По умолчанию

Не хочу создавать новую тему,поэтому если автор не против задам такой вопрос,сложно ли писать приложения на Win32 API? начинаю изучать и почему-то очень тяжело идет.
Freddi Krjuger вне форума Ответить с цитированием
Старый 16.02.2011, 14:23   #7
Digit@ll
Brainsbreaker
Пользователь
 
Аватар для Digit@ll
 
Регистрация: 07.02.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Freddi Krjuger Посмотреть сообщение
сложно ли писать приложения на Win32 API? начинаю изучать и почему-то очень тяжело идет.
Проще чем на чем-либо, если у тебя есть необходимый материал по функциям.
Digit@ll вне форума Ответить с цитированием
Старый 16.02.2011, 16:13   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

немного головы и все отлично пишется.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WIN32 API. Проблемы с созданием окна в консольном приложении Magnuse Помощь студентам 1 23.01.2011 14:34
Проблема с созданием пользователя shtep PHP 0 19.12.2010 16:38
Проблема с созданием класса Arkuz Общие вопросы Delphi 10 18.04.2010 14:18
Проблема с созданием окна(CreateWindow) в отдельном потоке Sc0rp Win Api 4 26.03.2009 22:49