Re[2]: MFC/CRecentFileList
От: TOPAZ23  
Дата: 27.01.16 12:20
Оценка:
Здравствуйте, SаNNy, Вы писали:

SNN>Здравствуйте, TOPAZ23, Вы писали:


TOP>>Добрый вечер всем. У меня возник такой неприятный момент в проекте с использованием MFC. Имеется класс, наследник от CWinApp. Имеется переопределенный метод AddToRecentFileList примерно такой:

TOP>>
TOP>>MyClass::AddToRecentFileList(LPCTSTR lpszPathName)
TOP>>{
TOP>> ...
TOP>> if (m_pRecentFileList != NULL)
TOP>>    m_pRecentFileList->Add(lpszPathName);
TOP>> ...
TOP>>}
TOP>>

TOP>>на Windows 7 все работает нормально, но на Windows 8 и старше на строчке Add падает с ошибкой "access violation". Сейчас скажите, что нужно писать что-то типо того:
TOP>>
TOP>>MyClass::AddToRecentFileList(LPCTSTR lpszPathName)
TOP>>{
TOP>> ...
TOP>> if (m_pRecentFileList != NULL)
TOP>>    if(WINVER >= 0x0601)
TOP>>        m_pRecentFileList->Add(lpszPathName, m_pszAppID);
TOP>>    else
TOP>>        m_pRecentFileList->Add(lpszPathName);
TOP>> ...
TOP>>}
TOP>>

TOP>>Пробовал, во-первых, параметр m_pszAppID пустой, а во-вторых winver не определяется. Может есть какая-то функция для Windows 8 и старше для добавления в список или есть какой-то способ, подскажите пожалуйста!!!

SNN>Версию Windows надо определять с помощью IsWindows8OrGreater

Спасибо конечно,но версию я могу определять и другими способами,тут вопросов нет, меня больше интересует что делать с функцией Add,если она валится, а m_pszAppID = "". Я не знаю нормальное это значение или нет. Повторюсь,меня интересует в большей степени функция Add для Windows 8 и старше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.