#c #mfc
#c #mfc
Вопрос:
Я искал пример программы для работы с CList. Но я не смог его найти.Я получил некоторые базовые определения о CLists (шаблонный класс, который ведет себя аналогично двусвязным спискам).. и используется для хранения совокупных данных..1-й аргумент хранится внутри списка..Я не мог видеть, какие элементы хранятся в списке и как его извлечь.
RsData Data; //object of class RsData
RsEvent* Event;//pointer to class RsEvent
CList<Event*,Event*> EventQueue;
Data.EventQueue.RemoveAll();
//removing the attributes and methods of the class RsEvent stored in the list.
Комментарии:
1. Откуда взялся этот класс CList? Возможно, вы могли бы привести пример, который компилируется?
2. в afxtempl.h … шаблон<ТИП класса, класс ARG_TYPE = const TYPEamp;> класс CList : public CObject { защищенный: struct CNode { CNode* pNext; CNode * pPrev; ТИП данных; }; stmts; };
3. Почему вы не рассматриваете
std::list
? Это описано в книге Страустроупа «Язык программирования C » и в книгах по STL, это стандартно.
Ответ №1:
Итак, документ является CList в MSDN
И там есть ссылка на образец сбора: иллюстрирует классы коллекции MFC
Я не уверен, как этот документ не был найден, поэтому, возможно, ваш вопрос нуждается в уточнении.
Список предлагает переднюю / заднюю вставку и просмотр, а также методы для итерации.
// Define myList.
CList<CString,CStringamp;> myList;
// Add an element to the front of the list.
myList.AddHead(CString("ABC"));
// Verify the element was added to the front of the list.
ASSERT(CString("ABC") == myList.GetHead());
Комментарии:
1. Привет, я сделал, как вы указали здесь ….#включить «stdafx.h» #включить «afxtempl.h» #включить <iostream> #определить _AFXDLL с использованием пространства имен std; int main() { CList<CString,CStringamp;> myList; myList.AddHead((CString(«ABC»))); ASSERT((CString («ABC») ==myList.GetHead() )); return 0; } вывод: получаю ошибку компилятора о том, что для сборки приложения MFC с /MD [d] (версия CRT dll) требуется версия MFC shared dll. Пожалуйста, #define _AFXDLL или не используйте /MD[d]…
2. Ваш недостаток знаний в настоящее время выходит за рамки моей помощи
3. @Beata — В сообщении говорится, что не так! Вы должны выбрать одинаковые версии MFC и CRT, либо обе как DLL, либо обе как статические библиотеки.
4. Я новичок в этом MFC, и я не мог понять, в чем ошибка. поэтому я включил #define _AFXDLL, как указано в ошибке.. Но снова я получил ту же ошибку .. извините, что беспокою вас обоих своими скудными знаниями. Я проверю, как выбрать те же версии MFC и CRT в качестве DLL..