Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, <Аноним>, Вы писали:
А>> Во всех сообщениях написано, что посмотреть причины, по которым может произойти Assertion failure можно посмотреть в документации по Assert VC++.
А>> У меня с английским плохо, поэтому поздскажите плиз что это за Assertion Failure?
А>> Что вообще такое Assertion? Это как-нибудь связано с макросами ASSERT и ASSERT_VALID? Зачем они вообще нужны?
OE>авторы библиотечных функций вставляют в свои функции проверки неких обязательных условий, без которых выполнение функции не имеет смысла, типа
OE>OE>ASSERT(afxCurrentInstanceHandle != NULL);
OE>
OE>если ты подорвался на этом месте, значит применяешь библиотеку не так, как расчитывал автор, надо разбираться, почему у тебя afxCurrentInstanceHandle == NULL
OE>Начни с сгенеренного мастером каркаса, добавляй свой код, пока не проявится ASSERT, если не въедешь сам, приводи этот код для разборок.
Вся фишка в том, что я не пользовался мастером. Я просто в своем проекте (не сгенеренный MFC-Wizard, а написанный ручками с явным указанием основного цикла выборки сообщения, и.т.д) в настройках указал, что нужно использовать MFC как статическую библиотеку, а затем просто пользовался классами CDaoDatabse, CDaoRecordset, и.т.д.
Например, для добавления строки использвался код типа
CDaoDatabase db;
db.Open(dbName,FALSE,FALSE,CString(dbLangGeneral)+_T(dbPasswordPWD));
CDaoTableDef dbTableDef(&db);
dbTableDef.Open(tableName);
CDaoRecordset dbRecord(&db);
dbRecord.Open(&dbTableDef);
dbRecord.AddNew();
dbRecord.Close();
dbTableDef.Close();
db.Close();
И где здесь нужно вставлять ASSERT-ы (или ASSERT_VALID-ы)?