Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Accéder à une variable dans une focntion static de ma classe [ Archives / Divers ] (aabhanane)

lundi 18 juillet 2005 à 11:13:07 | Accéder à une variable dans une focntion static de ma classe

aabhanane

Bonjour à tous,
je programme avec VC++ et j'ai une fonction définie comme suit:
static BOOL CALLBACK DriverEnumProc(HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport);
J'ai une variable   " CComboBox    m_comboBox "  associée à un ComboBox.
Je veux accéder à cette variable dans ma fonction DriverEnumProc.
Quand je mets " m_comboBox.AddString("toto") " dans le focntion DriverEnumProc ceci me donne l'erreur de compilation suivante: " error C2228: left of '.AddString' must have class/struct/union type "
Je crois comprendre que je ne peux pas accéder à ma variable m_comboBox dans une fonction static.
Est ce que quelqu'un aurait une solution pour résoudre ce problème?
Merci,
Hanane


lundi 18 juillet 2005 à 11:46:31 | Re : Accéder à une variable dans une focntion static de ma classe

buno

Si ta CallBack ne fait pas partie de la classe qui contient la combo, tu es obligé de la spécifier:
Classe::m_comboBox

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...

lundi 18 juillet 2005 à 11:55:23 | Re : Accéder à une variable dans une focntion static de ma classe

aabhanane

resalut,
Si ma fonction callback fait partie de ma classe, et j'ai pensé malgré ça à ajouter Classe::m_comboBox mais ca ne marche pas aussi, même erreur.
Merci,
Hanane


lundi 18 juillet 2005 à 12:02:38 | Re : Accéder à une variable dans une focntion static de ma classe

buno

Fait donc voir ton bout de code s'il te plait

Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...

lundi 18 juillet 2005 à 13:35:51 | Re : Accéder à une variable dans une focntion static de ma classe

aabhanane

Re,
En fait c'est un bout de code que j'ai trouvé sur msdn pour lister les codecs installés sur la machine et que j'ai adapté à mon problème:
dans le fichier .h:
static BOOL CALLBACK DriverEnumProc(HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport);
 
// Dialog Data
    //{{AFX_DATA(CCodecConf)
    enum { IDD = IDD_CODECCONFDLG };
    CComboBox    m_comboBox;
    //}}AFX_DATA

et dans le .cpp:

BOOL CALLBACK CCodecConf::DriverEnumProc(HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport)
{
    // Get some details.
    ACMDRIVERDETAILS dd;
    dd.cbStruct = sizeof(dd);
    MMRESULT mmr = acmDriverDetails(hadid, &dd, 0);
    if (mmr)
    {
        printf("   ");
    } else
    {
        /// Le problème est là
        m_comboBox.AddString(dd.szLongName);       
    }

    // Open the driver.
    HACMDRIVER had = NULL;
    mmr = acmDriverOpen(&had, hadid, 0);
    if (mmr) {
        printf("   ");
    } else
  {
        DWORD dwSize = 0;
        mmr = acmMetrics((HACMOBJ) had,          ACM_METRIC_MAX_SIZE_FORMAT, &dwSize);     
        acmDriverClose(had, 0);
    }

    return TRUE; // Continue enumeration.
}

BOOL CCodecConf::OnInitDialog()
{
    CDialog::OnInitDialog();
    DWORD dwACMVer = acmGetVersion();
    DWORD dwCodecs = 0;
    MMRESULT mmr = acmMetrics(NULL, ACM_METRIC_COUNT_CODECS, &dwCodecs);
   
    // Enumerate the set of enabled drivers.
    mmr = acmDriverEnum(DriverEnumProc, 0, 0);
   
    return TRUE;
}

Hanane




lundi 18 juillet 2005 à 13:42:00 | Re : Accéder à une variable dans une focntion static de ma classe

buno

Est-ce que tu as inclu afxwin.h? Il contient la définition de la ComboBox

lundi 18 juillet 2005 à 13:54:12 | Re : Accéder à une variable dans une focntion static de ma classe

aabhanane

Non ca ne marche pas même si j'inclus le afxwin.h ce qui n'est pas nécessaire (je crois) puisque je travailles avec les mfc.
Hanane


lundi 18 juillet 2005 à 13:57:51 | Re : Accéder à une variable dans une focntion static de ma classe

Zootella

Esseye avec un extern devant ta variable :

extern CComboBox    m_comboBox;


lundi 18 juillet 2005 à 14:22:57 | Re : Accéder à une variable dans une focntion static de ma classe

aabhanane

Non ca ne marche pas, mais je crois que je vais faire autrement. Comme le but est de remplire la combobox avec la liste des codecs. J'ecris cette derniere dans un fichier et après je lis le fichier ligne par ligne pour remplir la comboBox. C'est un peu chercher midi à 14h mais bon ca marche en attendant de trouver une solution. Merci, Hanane

lundi 18 juillet 2005 à 14:40:28 | Re : Accéder à une variable dans une focntion static de ma classe

Zootella

Poste ton code complet si il est pas long sinon tu  l'upload quelque part.

Sinon tu peux utiliser SendMessage() avec le HWND du combobox pour ajouter une ligne:

SendMessage(ComboBoxWnd, CB_INSERTSTRING, -1, (LPARAM)"une ligne");

 Mais c'est pas du MFC..




Cette discussion est classé dans : combobox, variable, static, accéder, focntion


Répondre à ce message

Sujets en rapport avec ce message

variable membre non static dans une fonction membre static [ par adrod ] J'ai une erreur du compilateur: Error C2597. Je suis allé sur msdn pour avoir plus de précision et ils me disent:To access the nonstatic member, you m (bool) probléme avec une variable bool [ par Xilofeon ] Salut a tousquestion d'un débutant confirmé lol !!!alors voila j'ai une variable bool a utilisé dans plusieur fonction dont 1 void dans le fichier .cp import/export static member variable [ par bvoisin ] Bonjour,c'est sans doute très simple, mais j'écris une DLL qui exporte une classe.  J'ai une variable static (pour connaître le nombre d'objets instan variable private et static dans une classe [ par simtiers ] Salut ! Voilà, j'aimerais savoir comment fait-on pour utiliser une variable statique dans une classe, et que cette variable soit dans le bloc private variable privee et statique [ par Kangourou_Nomade ] Bonjour,Je voudrais utiliser une variable statique dans une classe ( un logger). cette variable est un mutex qui me permettraitde ne pas ecrire dans m Probléme variable static et classe incompréhension [ par Booster ] Bonjour,Voilà, j'ai une incompréhension au niveau d'une variable static. Voici mon code :maclasse.hclass maclasse; //Ca me sert juste à ce que ma vari Surdéfinition statique (static) d'une variable membre [ par PetersonG ] Bonjour,Une drôle d'idée m'a fait surdéfinir en static une variable membre d'une classe parente, et, à ma grande surprise, le code compile sans problè Au Secour !!!! (avec static) [ par Slan ] SalutJ'ai un petit probleme. Je voudrai recuperer le contenu d'unevariable déclarée en 'static' a partir d'une fonction contenudans un autre fichier q Static et MFC [ par xXTomTomXx ] Je travaille en mfc et j'ai vrément besoin d'aide.J'ai crée dynamiquement plusieur static et une combobox.Je n'affichee qu'une static et j'aimerai la CALLBACK dans une Classe => problême mot clef static ! [ par Capa6T ] Salut, Une petite question à 2 euros...je cherche depuis un moment et je ne trouve pas la solution. j'ai une classe bidon:// Bidon.hclass Bidon{public


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 10,951 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.