2017-01-23 5 views
0

Я пытаюсь реализовать вариант подборщик папки в моем MFC Property Grid, используя Visual Studio 2015 Как так:Debug Assertion при использовании CMFCPropertyGridFileProperty

в Properties.h:

CMFCPropertyGridCtrl   GridCtrl; 
CMFCPropertyGridFileProperty VideoFolder; 

в Properties.cpp:

Properties::Properties() : VideoFolder(L"Folder",L"C:\\Users\\")  
{...} 

int Properties::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{ 
[...] 
GridCtrl.Create(WS_CHILD | WS_BORDER | WS_VISIBLE | WS_TABSTOP, Rect, this, NULL); 
GridCtrl.AddProperty(ICANDI); 
ICANDI->AddSubItem(&VideoFolder); 
} 

Теперь компиляция выполнена успешно, и элемент отображается в Property Grid, как предназначено. Но когда я нажимаю кнопку на элементе, чтобы выбрать папку в отдельном диалоговом окне, я получаю сообщение об ошибке «Отказ от ответа»! что указывает на проблему с mfc140ud.dll.

enter image description here

Забавно: Это работает в Visual Studio 2008, глядя на образцы кода из визуальной Feature Pack Studio 2008. Там есть образец под названием NewControls, который вызывает ту же процедуру, и работает без сбоев.

+2

Это может помочь показать утверждение ..... –

+1

* «Нажмите« Повторить попытку отладки приложения »* - Это приведет вас к выражению, которое не удалось. Это хорошая отправная точка для вашего анализа. Эта информация также должна быть в вашем вопросе. – IInspectable

ответ

0

У меня была та же проблема Assertion, и нашли решение, которое работало для меня:

  • Мой Visual Studio Проект решения был Диалог проекта, и я использую класс CWinApp.
  • Если вы хотите использовать подборщик папок (CShellManager :: BrowseForFolder()) , то вместо этого вы должны изменить класс CWinApp на CWinAppEx.
Смежные вопросы