操作系統:Windows 7 32位 的深化發展工具:Visual Studio 2008的網格控制:當在Windows XP中的Visual Studio運行運行時錯誤2008
問題: 當在Windows 7中運行它是確定的,但在XP有DEBUG模式下的斷言錯誤,RELEASE模式下的無形網格控制錯誤。 (就像你可以看到如下圖)
現狀:
網格控件類,我用的程序,從code-project被下載。 (我想我不能上傳計算器中的文件嗎?如果你需要它,PLZ告訴我。)
我以前在VS 6.0使用這個類。這是我第一次在VS 9.0中使用它。當我在VS 6.0中使用它時沒有錯誤。
沒有編譯錯誤,當我編譯Windows 7和XP程序。
在Windows 7中,以及在兩種調試和發佈模式下運行。
在Windows XP中,在DEBUG文件夾運行exe文件給出了一個斷言錯誤。當我在RELEASE文件夾中運行exe文件時,網格控件不顯示。
而且我也試圖編譯在XP與Visual Studio,看看是否有任何錯誤,但只給出了運行時錯誤。
錯誤:
調試斷言失敗!程序:... 文件:.../gridctrl_src/gridcell.cpp 線:228
有關程序 如何導致斷言失敗的信息,請參閱 在Visual C++文檔上斷言 。
以下是gridcell.cpp源代碼在錯誤行。
/////////////////////////////////////////////////////////////////////////////
// CGridDefaultCell
CGridDefaultCell::CGridDefaultCell()
{
#ifdef _WIN32_WCE
m_nFormat = DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX;
#else
m_nFormat = DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX | DT_END_ELLIPSIS;
#endif
m_crFgClr = CLR_DEFAULT;
m_crBkClr = CLR_DEFAULT;
m_Size = CSize(30,10);
m_dwStyle = 0;
#ifdef _WIN32_WCE
LOGFONT lf;
GetObject(GetStockObject(SYSTEM_FONT), sizeof(LOGFONT), &lf);
SetFont(&lf);
#else // not CE
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0));
SetFont(&(ncm.lfMessageFont));
#endif
}
預先感謝您!
良好局面的研究 – 2011-04-29 03:10:33