1. #1
    Da Turtle's Avatar
    Registered
    22/10/02
    Location
    Brugge & Gent
    Posts
    657
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1

    C++ : WinMain in klasse?

    Mijn vraag, ik zou willen een venster maken binnen een klasse (mijn klasse die de graphics behandeld) zodat je gewoon kan een functie compilen bv
    Code:
    spelleke()
    {
    cGraphs graphs;
    graphs.Create(1024, 768, 85, 32bit);
    }
    zoiets bevoorbeeld en dan die functie in die klasse maakt je window handle, instance handle, ... zodat deze binnen de klasse kan blijven en makkelijk deze klasse kan gebruiken zonder gebruik te moeten maken van een winMain functie. Ik heb dit geprobeerd maar ik krijg errors en ik zou willen weten als dit wel mogelijk is. Want dit niet mogelijk is was ik al de hele tijd voor niks bezig
    no votes  

  2. #2

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    onlangs voort zelfde probleem gestaan:

    -ik heb (in deze toepassing althans ) nog geen enkel prob ivm hinstances gekend, gewoon op NULL zetten dus .
    no votes  

  3. #3
    wlibaers's Avatar
    Registered
    18/07/02
    Posts
    2,279
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Winmain kan niet in een klasse zitten (tenzij misschien als je een compiler zou hebben die toelaat static member functions als extern "c" te compileren, maar dat is strikt theoretisch - en bovendien vrij nutteloos).
    "If you have a right to respect, that means other people don't have a right to their own opinions."
    Thomas Sowell
    no votes  

  4. #4
    Da Turtle's Avatar
    Registered
    22/10/02
    Location
    Brugge & Gent
    Posts
    657
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    Ik wil niet echt een winMain in een klasse, ik gebruikte dat gewoon om mijn probleem duidelijk te maken, even mijn klasse uploaden.
    http://users.pandora.be/daturtle/cGFX.h
    zou kunnen zijn dat ik compleet mis ben op deze manier, maar ik weet et niet. Nu wordt teminste mijn probleem duidelijk (hoop ik).

    Het probleem is mss ook dat ik het probeer op te roepen binnen een main functie en dat de compiler dit verkeerd interpreteerd.
    Code:
    main()
    {
    cGFX *cGraphs = new cGFX();
    
    	cGraphs->initWindow(800, 600, bit32, false, 60);
    
    return 0;
    }
    hetgene niet werkt is het creƫren van het Direct 3D object.
    error : "The method call is invalid. For example, a method's parameter may have an invalid value."
    no votes  

  5. #5
    QplQyer's Avatar
    Registered
    17/07/02
    Location
    PSPACE
    Posts
    4,603
    iTrader
    14 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18
    Kan je niet gewoon doen:
    Code:
    int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline, int ncmdshow)
    {
          cGFX *cGraphs = new cGFX();
           cGraphs->initWindow(800,600, bit32, false,60);
    }
    En dan in de constructor van cGFX() ofzo:

    Code:
    WNDCLASSEX nieuweclass;
    
    nieuweclass.lpfnWndProc = WindowProc;
    nieuweclass.lpszClassName = Mijn_Nieuwe_Win_Class;
    // vul hier de rest van de struct in
    
    // registreren van de class
    if(!RegisterClassEx(&winclass))
        return(0);
    en dan in initWindow:

    Code:
    void initWindow(int width, int height, Class something, BOOL something, int something)
    {
    if(!(hwnd=CreateWindowEx(NULL,Mijn_Nieuwe_Win_Class,"titel",WS_OVERLAPPEDWINDOW | WS_VISIBLE,0,0,width,height,NULL,NULL,hinstance,NULL);
        return(0);
    Dat zou toch moeten doen wat je wilt denk ik?
    Only art and science can and try to change the world, therefore paying millions to useless sportsmen is sheer idiocy.
    The man, the legend: Dijkstra
    no votes  

  6. #6
    Da Turtle's Avatar
    Registered
    22/10/02
    Location
    Brugge & Gent
    Posts
    657
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    *EDIT wie mijn vorige post gelezen had, tis nog niet opgelost, nu heb ik alleen het probleem als er full screen gebruikt wordt.
    Last edited by Da Turtle; 22-09-2004 at 22:18.
    no votes  

  7. #7
    QplQyer's Avatar
    Registered
    17/07/02
    Location
    PSPACE
    Posts
    4,603
    iTrader
    14 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18
    Welk probleem dus juist?
    Only art and science can and try to change the world, therefore paying millions to useless sportsmen is sheer idiocy.
    The man, the legend: Dijkstra
    no votes  

  8. #8
    Da Turtle's Avatar
    Registered
    22/10/02
    Location
    Brugge & Gent
    Posts
    657
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/1
    Mijn D3DPRESENT_PARAMETERS voor full screen waren verkeerd, dit is nu opgelost, dus geen problemen meer, toch thx voor de reply's iederen .
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in