2017-01-23 112 views
0

我想實現我的MFC屬性網格皮卡文件夾選項,使用Visual Studio 2015年,像這樣的時候:調試斷言使用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); 
} 

現在,編譯成功,並且該項顯示在屬性網格中。但是,當我單擊項目上的按鈕以在單獨的對話框中選擇文件夾時,出現運行時錯誤,提示「調試斷言失敗!」表明mfc140ud.dll存在問題。

enter image description here

有趣的是:這是工作在Visual Studio 2008,從Visual Studio 2008的功能包看代碼樣本。有一個名爲NewControls的示例,它調用相同的例程並且運行時不會崩潰。

+2

它可能有助於顯示斷言..... –

+1

*「按重試來調試應用程序」* - 這將帶你正確的表達失敗。這對你的分析來說是一個很好的起點。這些信息也應該在你的問題中。 – IInspectable

回答

0

我有同樣的斷言問題,並發現爲我工作的解決方案:

  • 我的Visual Studio解決方案項目是一個對話的項目,我用的是CWinApp類。
  • 如果您要使用文件夾選取器(CShellManager :: BrowseForFolder()) 那麼您必須將CWinApp類更改爲CWinAppEx。