Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [c++] Вывод Окна


Автор: KuMa1104 18.5.2009, 20:51
Здрасте!! smile  Вот простая программа которая должна явить миру пустое окошко. Но, толи програмист в моём лице- дурак, толи просто злой рок судьбы являет мне ошибку линкера 
"Linker Tools Error LNK2019" писал я на VS 2008 если это имеет значение. Хотелось бы узнать почему , а исчо smile  как это там исправить.

Код


#include <windows.h>

LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
    HWND hwnd;
    MSG msg;
    WNDCLASS w;
    memset(&w,0,sizeof(WNDCLASS));
    w.style = CS_HREDRAW | CS_VREDRAW;
    w.lpfnWndProc = WndProc;
    w.hInstance = hInstance;
    w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    w.lpszClassName = L"My Class";
    RegisterClass(&w);
    /*LPCWSTR ggg = L"My title";
    const wchar_t *d = L"My title";*/
    hwnd = CreateWindow(L"My Class", L"My title", WS_OVERLAPPEDWINDOW,
        300, 200, 200, 180, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_DESTROY: 
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, Message, wparam, lparam);
    }
    return 0;
}

 

Автор: Dmi3ev 19.5.2009, 00:54
а открыть VS и посмотреть не судьба?

Автор: KuMa1104 19.5.2009, 20:03
Я понял что не так, получилось что зря побеспокоил тех кто это читал, извиняюсь.

Дело видимо в том что я почемуто засунул этот код не в WindowsAplication а в ConsoleAplication . В виду того что у них различные настройки линкера ,в частности SubSystem 
там стоит Console (/SUBSYSTEM:CONSOLE) вместо Windows (/SUBSYSTEM:WINDOWS) он выдовал мне эту ошибку.

Кстати Dmi3ev что означают ваши слова?
Цитата

а открыть VS и посмотреть не судьба?

Я этим и занимался, просто из за моей оплошности я не смог  найти свою ошибку (сразу)
а в helpe подходящего описания я не нашёл, поэтому мне этот вопрос показался интересным,
к томуже этот раздел предназначен именно для подобных случаев.
 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)