Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa WinApi-jem ??????

[es] :: C/C++ programiranje :: Problem sa WinApi-jem ??????

[ Pregleda: 2053 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.dialup.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Problem sa WinApi-jem ??????23.06.2006. u 03:20 - pre 218 meseci
Pozdrav,pokusavam da napravim nesto preko WinAPI-ja,ovo sam cesto radio u Delphiju,
i nikada nisam imao problema,ja ne vidim u cemu je problem,gde gresim,nece ni obican prozor da mi napravi.
Koristim Visual Studio 2005,a i pokusao sam kompajlirati i preko Free Command Line Tools-a,i nece,
prijavljuje gresku oko kastovanja,guglovao sam i nalazio primere neke i tutoriale,ali
code je bukvalno isti ali moj ne radi,a ni code iz tutoriala ne radi,sto je cudno jer je to tutorial,moze li neko da pogleda i da mi kaze gde gresim,hvala unapred.

Code:

 #include <windows.h>

const char ClsName[] = "proba";

LRESULT CALLBACK WndProcedure(HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam)
{
    switch(Msg){
    case WM_DESTROY:
        PostQuitMessage(WM_QUIT);
        break;
    default:
        return DefWindowProc(hWnd, Msg, wParam, lParam);
    }
    return 0;
}

INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
    MSG        Msg;
    HWND       hWnd;
    WNDCLASSEX WndClsEx;

    WndClsEx.cbSize        = sizeof(WNDCLASSEX);
    WndClsEx.style         = CS_HREDRAW | CS_VREDRAW;
    WndClsEx.lpfnWndProc   = WndProcedure;
    WndClsEx.cbClsExtra    = 0;
    WndClsEx.cbWndExtra    = 0;
    WndClsEx.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    WndClsEx.hCursor       = LoadCursor(NULL, IDC_ARROW);
    WndClsEx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClsEx.lpszMenuName  = NULL;
    WndClsEx.lpszClassName = ClsName; // ovo kad kastujem (LPCWSTR)ClsName kompajler pokazuje jednu gresku manje
    WndClsEx.hInstance     = hInstance;
    WndClsEx.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

    RegisterClassEx(&WndClsEx);

// i kod ove f-je mi javlja gresku ali nemogu da je neutralisem :(
    hWnd = CreateWindowEx(
                         WS_EX_CLIENTEDGE,
                         ClsName,                
                     "Naslov moje forme",
                 WS_OVERLAPPEDWINDOW,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 NULL,
                 NULL,
                 hInstance,
                 NULL
                 );
    
    if( !hWnd ) return 0; 


    ShowWindow(hWnd, SW_SHOWNORMAL);
    UpdateWindow(hWnd);

    while( GetMessage(&Msg, NULL, 0, 0) )
    {
             TranslateMessage(&Msg);
             DispatchMessage(&Msg);
    }

    return Msg.wParam;
}


A ovo mi prijavi :
Code:

------ Build started: Project: f1, Configuration: Debug Win32 ------
Compiling...
f1.cpp
c:\documents and settings\ivan\my documents\visual studio 2005\projects\f1\f1\f1.cpp(32) : error C2440: '=' : cannot convert from 'const char [6]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\ivan\my documents\visual studio 2005\projects\f1\f1\f1.cpp(51) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [6]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\documents and settings\ivan\my documents\visual studio 2005\projects\f1\f1\f1.cpp(65) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
Build log was saved at "file://c:\Documents and Settings\Ivan\My Documents\Visual Studio 2005\Projects\f1\f1\Debug\BuildLog.htm"
f1 - 2 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Hvala unapred,pozz
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.hsd1.ca.comcast.net.



+1001 Profil

icon Re: Problem sa WinApi-jem ??????23.06.2006. u 07:50 - pre 218 meseci
Pokusaj da ClsName definises kao _T("proba");
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.vtszg.hr.



+9 Profil

icon Re: Problem sa WinApi-jem ??????28.06.2006. u 11:08 - pre 218 meseci
Ovo nije c++ projekt. Spremi source kao .C i rekompajliraj...
Niš strašnog.
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.dialup.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Problem sa WinApi-jem ??????29.06.2006. u 19:40 - pre 218 meseci
@itf
Probao sam da ga preimenujem u extenziju C i nece iste greske mi javi.

@milanche
Probao sam i da dodam _T,sad mi javi ovo :
Code:

 ------ Build started: Project: F2, Configuration: Debug Win32 ------
Linking...
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
C:\Documents and Settings\Ivan\My Documents\Visual Studio 2005\Projects\F2\Debug\F2.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Ivan\My Documents\Visual Studio 2005\Projects\F2\F2\Debug\BuildLog.htm"
F2 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


To mi je javljalo i kad sam kastovao i sam LPCWSTR

Sigurno je neka glupa greska,ali je ja ne vidim
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Problem sa WinApi-jem ??????29.06.2006. u 20:46 - pre 218 meseci
Citat:
IvanBeograd: @itf

To mi je javljalo i kad sam kastovao i sam LPCWSTR :(

Sigurno je neka glupa greska,ali je ja ne vidim :(


Kao prvo nije mi jasno sto se petljas sa suvim apijem kad si totalni pochetnik. Uzmi nesto malo vizuelnije pa polako upoznaj stvari.

Tvoj prvi problem je sto aplikacije u VS 2005 sve po defaultu unicode. To implicira da se skoro svuda koriste wide char stringovi.

Otuda LPCWSTR koji je typedef za const wchar_t* . Ti inache koristish const char* pa zato i ne ide konverzija.

Da bi ispravio ovo idi u podeshavanja projekta i na stranici General u stavki "character set" izaberi "use multibyte charset" i prekompajliraj.

Sto se tice druge greske koja kaze da ti nedostaje funkcija _main pri linkovanju to je zato sto si kreirao pogresan projekt. Ti si napravio novi konzolni projekat a u stvari treba da napravish novi win32 projekat.

Windows aplikacije imaju startup funkciju winmain dok klasicne konzolne aplikacije imaju funkciju main.


Tko leti vrijedi
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.dialup.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Problem sa WinApi-jem ??????29.06.2006. u 23:43 - pre 218 meseci
Hvala na pomoci,nisam imao problema sa API-jem u Delphij-u,znam otprilike kako ide i radi vecina f-ja,
ne davno sam instalirao VS2005,hvala puno,stvarno je bio ne vidjeno glup problem!
Pozz
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
*.dialup.sezampro.yu.

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Problem sa WinApi-jem ??????30.06.2006. u 01:18 - pre 218 meseci
Hvala puno,proradilo,problem je bio u tom win32 projektu,ja sam pokusavao preko consol application
pozzz
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem sa WinApi-jem ??????

[ Pregleda: 2053 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.