Merci pour ces méthodes qui semblent plus propres... Mais j'ai toujours la même erreur de lien :
IODlg.obj : error LNK2001: unresolved external symbol "private: static class CObjectGUI * * SharedData::objectsGUItab" (?objectsGUItab@SharedData@@0PAPAVCObjectGUI@@A)
IODlg.obj : error LNK2001: unresolved external symbol "private: static int SharedData::objectsGUItab_i" (?objectsGUItab_i@SharedData@@0HA)
Mon .h est le suivant :
1 2 3 4 5 6 7 8 9 10 11
| #include "objectGUI.h"
#define MAX_OBJECTS_NB 255
class SharedData
{
friend class CGui_testView;
friend class CIODlg;
private:
static CObjectGUI * objectsGUItab[MAX_OBJECTS_NB];
static int objectsGUItab_i;
}; |
et j'accède aux variables dans une fonction de la classe CIODlg comme suit :
SharedData::objectsGUItab[SharedData::objectsGUItab_i++]=attachedGUIObj;
Bien sur j'ai essayé d'éviter les variables globales, mais je ne sais pas si c'est possible dans mon cas que je vais essayer de vous expliquer simplement :
J'ai une application graphique créée avec MFC AppWizard dans laquelle je veux que l'utilisateur puisse placer des objets, les déplacer... Je veux donc placer mes objets dans un tableau de CBitmapButton. Il sont créés dans une classe en relation avec les dialog box demandant des informations avant la création, mais doivent être affichés grâce au OnDraw de la classe CGui_testView (mon nom de projet est gui_test). A moins qu'il y ai un autre moyen pour afficher ces fameux CBitmapButton dans "l'espace blanc central" de cette appli MFC ? Et donc le problème est que la classe CGui_testView est appelée avec :
1 2 3 4 5
| pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CGui_testDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(CGui_testView)); |
Il n'y a donc pas d'objet de type CGui_testView à partir duquel récupérer la valeur de certains membres ?
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Partager