stl std::list
Он должен использоваться в 2-х диалоговых классах: CSMSSenderDlg,COptions.cpp
Объявляю accounts как глобальную переменную в Options.cpp или как public член COptions в Options.h - SMSSenderDlg его не видит: c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65):
error C2065: 'accounts' : undeclared identifier
c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65): error C2228: left of '.push_front' must have class/struct/union type
Объявляю как глобальную переменную в Options.h - начинает линковать, а дальше:
SMSSender error LNK2005: "class std::list<struct account,class std::allocator<struct account> > accounts" (?accounts@@3V?$list@Uaccount@@V?$allocator@Uaccount@@@std@@@std@@A) already defined in Options.obj
struct account{
char nick[50];
char email[50];
char login[30];
char pass[30];
char smtp[30];
};
Options.h проincludeны в SMSSenderDlg.cpp
Линкуется со стандартными установками MFC.
Цитата:
Originally posted by lexus
Есть контейнер std::list <account> accounts;
Он должен использоваться в 2-х диалоговых классах: CSMSSenderDlg,COptions.cpp
Объявляю accounts как глобальную переменную в Options.cpp или как public член COptions в Options.h - SMSSenderDlg его не видит: c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65):
error C2065: 'accounts' : undeclared identifier
c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65): error C2228: left of '.push_front' must have class/struct/union type
Объявляю как глобальную переменную в Options.h - начинает линковать, а дальше:
SMSSender error LNK2005: "class std::list<struct account,class std::allocator<struct account> > accounts" (?accounts@@3V?$list@Uaccount@@V?$allocator@Uaccount@@@std@@@std@@A) already defined in Options.obj
struct account{
char nick[50];
char email[50];
char login[30];
char pass[30];
char smtp[30];
};
Options.h проincludeны в SMSSenderDlg.cpp
Линкуется со стандартными установками MFC.
Есть контейнер std::list <account> accounts;
Он должен использоваться в 2-х диалоговых классах: CSMSSenderDlg,COptions.cpp
Объявляю accounts как глобальную переменную в Options.cpp или как public член COptions в Options.h - SMSSenderDlg его не видит: c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65):
error C2065: 'accounts' : undeclared identifier
c:\proj\sms\SMSSender\SMSSenderDlg.cpp(65): error C2228: left of '.push_front' must have class/struct/union type
Объявляю как глобальную переменную в Options.h - начинает линковать, а дальше:
SMSSender error LNK2005: "class std::list<struct account,class std::allocator<struct account> > accounts" (?accounts@@3V?$list@Uaccount@@V?$allocator@Uaccount@@@std@@@std@@A) already defined in Options.obj
struct account{
char nick[50];
char email[50];
char login[30];
char pass[30];
char smtp[30];
};
Options.h проincludeны в SMSSenderDlg.cpp
Линкуется со стандартными установками MFC.
Последний warning - значит ты его определяешь в header, а header у тебя включается в проекте несколько раз и получается переменная в нескольких модулях с одним именем. Надо в одном месте (cpp) определять, те std::list<account> accounts; в другом вставлять описание (header) extern std::list<account> accounts;