ACCESS的,密码保存在文件偏移量的66(十进制)位置
fp.Seek (66,CFile::begin);
fp.Read (cWord,13);
fp.Close (); if ((BYTE)(cWord[0] ^ 0x86) == 0)
m_strStaResult = "No Password";
else
{
cWord[0] ^= 0x86;
cWord[1] ^= 0xFB;
cWord[2] ^= 0xEC;
cWord[3] ^= 0x37;
cWord[4] ^= 0x5D;
cWord[5] ^= 0x44;
cWord[6] ^= 0x9C;
cWord[7] ^= 0xFA;
cWord[8] ^= 0xC6;
cWord[9] ^= 0x5E;
cWord[10] ^= 0x28;
cWord[11] ^= 0xE6;
cWord[12] ^= 0x13; m_strStaResult = cWord;
}

解决方案 »

  1.   

    可以,在Open()的最后一个参数用 ;pwd = “密码”;就可以了
      

  2.   

    CDaoDatabase的Open()函数:
    virtual void Open( LPCTSTR lpszName, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("") );lpszName传文件名,而lpszConnect传其它参数。

    m_database.Open("mydb.mdb",FALSE,FALSE,";UID=admin;PWD=***");如果你要打开的是ODBC数据源,则第一个参数lpszName设为空串即 _T("");而lpszConnect中传送一个有效的ODBC连接串,比如
    _T("ODBC;DSN=Hotel Management System;UID=admin;PWD=***"),还有两个参数就都为FALSE。这样就OK了!