void AfxDaoInit( ); throw( CDaoException );
Эта функция производит инициализацию DAO. В большинстве случаев нет необходимости вызывать эту функцию самому это сделает первый инициализируемый объект DAO. Если производится инициализация, то должна производиться и деиницализация. Это делает функция:
void AfxDaoTerm( );
Вызываться она должна после того, как все объекты DAO будут разрушены. В DLL, Вы должны вызвать AfxDaoTerm() прежде, чем вызовется ExitInstance().
Пример правильной инициализации и деинициализации в DLL:
SomeExportedInitializeDAO( .. ) { #ifndef _AFXDLL AFX_MANAGE_STATE(AfxGetStaticModuleState()); #endif m_pDB = new CDaoDatabase; m_pDB->Open(..); } SomeExportedDestroyObjectsAndTerminateDAO( .. ) { #ifndef _AFXDLL AFX_MANAGE_STATE(AfxGetStaticModuleState()); #endif m_pDB->Close(); delete m_pDB; AfxDaoTerm(); }