WINAPI/C++ - Problem z kompilacją.

0

Witam,

Próbuję uporać się z problemem od 15. Nawet przeinstalowałem program ( VISUAL C++ 2008 ). Tworzę empty projekt a potem tworzę plik *cpp zawierający kod na tworzenie okienka. Niestety cały czas wyskakuje mi błąd:

mbedding manifest...
mt.exe : general error c10100b1: Failed to load file ".\Debug\test.exe". Nie mo|na odnalez okre[lonego pliku.

Tracę już siły i nie mogę, za każdym razem nie działa, przeglądałem w internecie gotowe programy, to nie było całych projektów wpisywałem moje błędy to nic konkretnego nie było. Mam ogromną prośbę, może mi ktoś przesłać projekt z plikiem source gdzie mogę wkleić swój kod ( Jak poniżej ), a potem kompiluję i mam *exe, bo naprawdę nie mogę już.

 #include <windows.h>

LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    
    // WYPEŁNIANIE STRUKTURY
    WNDCLASSEX wc;
    
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszMenuName = NULL;
    wc.lpszClassName = NazwaKlasy;
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
    
    // REJESTROWANIE KLASY OKNA
    if( !RegisterClassEx( & wc ) )
    {
        MessageBox( NULL, "Wysoka Komisja odmawia rejestracji tego okna!", "Niestety...",
        MB_ICONEXCLAMATION | MB_OK );
        return 1;
    }
    
    // TWORZENIE OKNA
    HWND hwnd;
    
    hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Oto okienko", WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL );
    
    if( hwnd == NULL )
    {
        MessageBox( NULL, "Okno odmówiło przyjścia na świat!", "Ale kicha...", MB_ICONEXCLAMATION );
        return 1;
    }
    
    ShowWindow( hwnd, nCmdShow ); // Pokaż okienko...
    UpdateWindow( hwnd );
    
    // Pętla komunikatów
    while( GetMessage( & Komunikat, NULL, 0, 0 ) )
    {
        TranslateMessage( & Komunikat );
        DispatchMessage( & Komunikat );
    }
    return Komunikat.wParam;
}

// OBSŁUGA ZDARZEŃ
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
        
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
        
        default:
        return DefWindowProc( hwnd, msg, wParam, lParam );
    }
    
    return 0;
}
0

nie możesz z code blocks korzystać? jest prostszy w obsłudze i krócej się przeinstalowuje

0

Mi ten kod działa (Code::Blocks) niezależnie od tego, czy tworzę empty project czy WIN32 api

0

Tworzę empty projekt a potem tworzę plik *cpp zawierający kod

Pytanie brzmi: jak tworzysz plik *cpp. Gdzie go zapisujesz, jak nazywasz... gdzie trzymasz projekt... bo osobiście po wybraniu "empty project" na problemy nie natrafiłem dodając kolejne pliki ze źródłami za pomocą menu kontekstowego w "solution explorer"...

user image

Może Ty w jakiś przekombinowany sposób ten plik .cpp dodajesz? :|
A próbowałeś nowy projekt "Win32: Win32 Project" zamiast pustego na starcie?

**Dopisane: **
pro forma, spakowany projekt w załączniku... który u mnie normalnie działa (VS 2008), ale to nie jest rozwiązanie... trzeba pomyśleć, co Ty możesz robić inaczej...

1 użytkowników online, w tym zalogowanych: 0, gości: 1