Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c++] : pointer to callback function

    Salve a tutti,
    sto cercando di usare la funzione EnumWindowStations della libreria WinUser.h ma non riesco a passargli il puntatore alla funzione callback che ho creato. Cioè non mi è chiaro come debba farlo e non riesco a chiarirmi le idee su questo punto nonostante mi sono studiato un po' i riferimenti a tale funzione ( https://docs.microsoft.com/en-us/win...indowstationsw)

    Segue il codice così forse è più comprensibile ciò che non capisco:

    codice:
    BOOL CALLBACK CWinLogon::EnumWindowStationProc(__in  LPWSTR lpszWindowStation,__in  LPARAM lParam)
    {
        ...
        return true;
    }
    void MyFunction()
    {
       if ( EnumWindowStations(&EnumWindowStationProc, NULL) )                
          home_window_station  = 0;
    }
    Il compilatore mi dice

    l'argomento di tipo "BOOL (__stdcall *)(LPWSTR lpszWindowStation, LPARAM lParam)" è incompatibile con il parametro di tipo "WINSTAENUMPROCW"


    ora andando a vedere le definizioni sul file WinUser.h
    codice:
    typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM);
    typedef NAMEENUMPROCW   WINSTAENUMPROCW;
    typedef WINSTAENUMPROCW     WINSTAENUMPROC;
    A questo punto mi areno, non riesco a capire come passare la funzione EnumWindowStationProc a EnumWindowStations.
    Qualcuno può chiarirmi le idee?
    Grazie mille
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  2. #2
    Ok, soluzione trovata!
    (Per i posteri)
    Bisognava dichiarare la funzione EnumWindowStationProc static !
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.