View -> variable globale help! [VC++] - Programmation
Marsh Posté le 30-01-2002 à 18:07:14
qui te dit de déclarer un variable globale, et pour faire quoi ?
Marsh Posté le 30-01-2002 à 18:11:20
A mort les variables globales!!
(la seule que j´accepte c CWinApp).
Sinon tu la met juste après les include, et hop une variable globale pour ttes les classes de ton app.
[edtdd]--Message édité par H4dd3R--[/edtdd]
Marsh Posté le 30-01-2002 à 18:35:48
C'est mon prof qui veut ca...
#include "stdafx.h"
#include "Carnet.h"
#include "CarnetDoc.h"
#include "CarnetView.h"
CDBCarnet oCarnet; // <--- la var globale
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
voila donc c'est la que je dois la mettre? et ben ca me donne 3 erreurs!
1) error C2146: syntax error : missing ';' before identifier 'oCarnet'
2) error C2501: 'CDBCarnet' : missing storage-class or type specifiers
3) fatal error C1004: unexpected end of file found
et meme si je mets la var globale apres le #endif, ca me donne les memes erreurs...
ou la mettre???? je deviens fou :-(
Marsh Posté le 30-01-2002 à 19:52:03
Essaie de la mettre dans stdafx.h , comme ca elle est visible par toutes les classes ( n'oublie pas aussi de mettre le .h associé dans stdafx.h ).
Mais bon , faut savoir qu'en MFC , on n'utilise jamais de variables globales, cree ta variable dans la classe CMyApplicationApp et apres tu accede a celle en faisant :
(CMyApplicationApp *)AfxGetApp()->nom_variable.
(accessible de partout)
Marsh Posté le 31-01-2002 à 16:58:01
Ou que je la mette, j'ai toujours les meme 3 erreurs!
c'est pas normal, qu'est ce que je fais de travers????
en resume : j'ai cree une classe associe a une base de donnees access (-> dao), il faut maintenant que je cree un objet de cette classe, et ca marche jamais!
la classe s'appele CDBCarnet
aidez moi svp ...
Marsh Posté le 31-01-2002 à 17:07:55
AAAAAAAAAAahhhhhhhhhhhhhh j'ai trouve
j'avais oublie d'inclure le header qu'il faut !
merci
Marsh Posté le 31-01-2002 à 17:49:45
C'est encore moi, j'ai une autre question
voila j'ai les fichiers DBCarnet.h et cpp dans lesquels sont definis certaines variables (en l'occurence m_Nom)
dans le fichier CCarnetView.cpp, il y a un include pour DBCarnet.h, donc logiquement je devrais pouvoir acceder a m_Nom dans CCarnetView.cpp ? c'est ce que j'essaye de faire dans la methode OnInitialUpdate, mais il me dit que m_Nom = undeclared identifier
qu'ai je mal fait?
merci
a+
Marsh Posté le 01-02-2002 à 12:41:04
Ben si...
en fait, j'ai une bd access, et dans mon applic il y a une listbox, ce que je dois faire c'est rapatrier les noms de la bd pour les foutres dans la listbox
donc j'ai cree la connexion a la bd -> ok
j'ouvre la bd dans l'applic (open()) -> ok
j'ai cree une variable membre (m_lbNoms) de type CListBox qui est en rapport avec le control_id idc_list (donc la listbox) -> ok
et dans le fichier CCarnetView.cpp, dans la methode OnInitialUpdate, je veux faire ceci : m_lbNoms.AddString(m_Nom) et le compilateur me dit que m_Nom est un "undeclared identifier"...
je vois pas ce qui est mal fait??
Marsh Posté le 02-02-2002 à 13:07:29
Slash- a écrit a écrit : C'est encore moi, j'ai une autre question voila j'ai les fichiers DBCarnet.h et cpp dans lesquels sont definis certaines variables (en l'occurence m_Nom) dans le fichier CCarnetView.cpp, il y a un include pour DBCarnet.h, donc logiquement je devrais pouvoir acceder a m_Nom dans CCarnetView.cpp ? c'est ce que j'essaye de faire dans la methode OnInitialUpdate, mais il me dit que m_Nom = undeclared identifier qu'ai je mal fait? merci a+ |
variable globale = programmation de porc
Sinon je suppose que tu dois faire un
Code :
|
Marsh Posté le 02-02-2002 à 13:40:11
Moi je fais ce qu'on me demande...
merci ca fonctionne comme ca !
Marsh Posté le 30-01-2002 à 18:06:30
Salut, voici mon fichier CCarnetView.cpp
on me dit de declarer une variable en globale, mais ou dois je la declarer???
// CarnetView.cpp : implementation of the CCarnetView class
//
#include "stdafx.h"
#include "Carnet.h"
#include "CarnetDoc.h"
#include "CarnetView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//////////////////////////////////////////////////
///////////////////////////
// CCarnetView
IMPLEMENT_DYNCREATE(CCarnetView, CFormView)
BEGIN_MESSAGE_MAP(CCarnetView, CFormView)
//{{AFX_MSG_MAP(CCarnetView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
///////////////////////////////////////////////////////
//////////////////////
// CCarnetView construction/destruction
CCarnetView::CCarnetView()
: CFormView(CCarnetView::IDD)
{
//{{AFX_DATA_INIT(CCarnetView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CCarnetView::~CCarnetView()
{
}
void CCarnetView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCarnetView)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BOOL CCarnetView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CCarnetView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CCarnetView printing
BOOL CCarnetView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CCarnetView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CCarnetView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CCarnetView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CCarnetView diagnostics
#ifdef _DEBUG
void CCarnetView::AssertValid() const
{
CFormView::AssertValid();
}
void CCarnetView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CCarnetDoc* CCarnetView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCarnetDoc)));
return (CCarnetDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CCarnetView message handlers