VC - Debug Assertion Failed!
7 отговора
195 прегледа
VC - Debug Assertion Failed!
Предварително искам да кажа, че VC знанията ми са в зародиш...
Имам проект, който съдържа следните неща:
- един ActiveX, който преобразува RTF в HTML
- една RichEdit контрола
- един бутон
Целта на заданието е при натискане на бутона да се вземе RTF-а от RichEdit контролата, да се мине през ActiveX-а и да се покаже като съобщение.
С помощта на добри хора го преборих - нещата при мен вървят. Когато пратих обаче проекта на този дето ще го ползва, при компилиране му излиза следното съобщение:
Debug Assertion Failed
File: dlgdata.cpp
Line: 43
Ето и кода:
HWND CDataExchange::PrepareCtrl(int nIDC)
{
АSSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE); // ***** това е ред 43 *****
AfxThrowNotSupportedException();
}
m_hWndLastControl = hWndCtrl;
m_bEditLastControl = FALSE; // not an edit item by default
ASSERT(hWndCtrl != NULL); // never return NULL handle
return hWndCtrl;
}
След търсене в Интернет открих някакво решение:
-----------------------------------------------------------------------------------------------
In the project's Property Page dialog box, under Resources - preprocessor
definitions, there was the setting "_AFXDLL;_DEBUG". I have removed
"_AFXDLL" and afterwards it did work.
-----------------------------------------------------------------------------------------------
Тъпото в цялата работа е, че грешката продължава да излиза. Някой има ли идея какъв може да е проблема?
чети и дишай по-леко
Имам проект, който съдържа следните неща:
- един ActiveX, който преобразува RTF в HTML
- една RichEdit контрола
- един бутон
Целта на заданието е при натискане на бутона да се вземе RTF-а от RichEdit контролата, да се мине през ActiveX-а и да се покаже като съобщение.
С помощта на добри хора го преборих - нещата при мен вървят. Когато пратих обаче проекта на този дето ще го ползва, при компилиране му излиза следното съобщение:
Debug Assertion Failed
File: dlgdata.cpp
Line: 43
Ето и кода:
HWND CDataExchange::PrepareCtrl(int nIDC)
{
АSSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE); // ***** това е ред 43 *****
AfxThrowNotSupportedException();
}
m_hWndLastControl = hWndCtrl;
m_bEditLastControl = FALSE; // not an edit item by default
ASSERT(hWndCtrl != NULL); // never return NULL handle
return hWndCtrl;
}
След търсене в Интернет открих някакво решение:
-----------------------------------------------------------------------------------------------
In the project's Property Page dialog box, under Resources - preprocessor
definitions, there was the setting "_AFXDLL;_DEBUG". I have removed
"_AFXDLL" and afterwards it did work.
-----------------------------------------------------------------------------------------------
Тъпото в цялата работа е, че грешката продължава да излиза. Някой има ли идея какъв може да е проблема?
чети и дишай по-леко
Re: VC - Debug Assertion Failed!
Neshto ne ti e nared s kontrola.
hWndCtrl ne triabva da e NULL.
hWndCtrl ne triabva da e NULL.
Re: VC - Debug Assertion Failed!
Дали въпросните ActiveX контроли са регистрирани на другото място ?!?

Re: VC - Debug Assertion Failed!
Ами би трябвало... Тоя проект го правех и на Delphi, той го е правил на VB, всичките с една и съща контрола.
Но ще го запитам изрично, щото той с VC-то е по-зле и от мене
чети и дишай по-леко
Но ще го запитам изрично, щото той с VC-то е по-зле и от мене
чети и дишай по-леко
провери какъв ид получаваш за контрола
виждам че асерта показва какъва е идентификатора. провери дали е такъв какъвто е по замисъл.
Re: VC - Debug Assertion Failed!
znachi problemyt ti vyznikva na tozi red:
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
Re: VC - Debug Assertion Failed!
рич едит контрола нали има сума ти версии... в каква среда го пуска твоя човек? с какво се различава от твоята? ползвате ли еднакви версии на контрола?
ръчкал съм ричедити само от WTL и там имаше препроцесорни макроси, с които се казва към коя версия на контрола да си компилираш приложението. не съм мфц експерт, но може и там нещата да са така!
хъм сега като се замисля, сигурно просто го пляскаш на някоя форма -- отвори ресурсния файл ( .rc ) и виж там коя е версията на контрола.
късмет!
ein heller Schein am Firmament
ръчкал съм ричедити само от WTL и там имаше препроцесорни макроси, с които се казва към коя версия на контрола да си компилираш приложението. не съм мфц експерт, но може и там нещата да са така!
хъм сега като се замисля, сигурно просто го пляскаш на някоя форма -- отвори ресурсния файл ( .rc ) и виж там коя е версията на контрола.
късмет!
ein heller Schein am Firmament