我最近将VS6的MFC项目移植到VS2005。 VS6项目链接了ddao35d.lib(DAO 3.5),它不再与VS2005中使用的“新”MFC兼容。为了解决这个问题,我现在包括afxdao.h并根据其他帖子的建议将我的数据库类从CdbDatabase
更改为CDaoDatabase
: -
http://www.experts-exchange.com/Programming/Languages/CPP/Q_22465486.html
但是,CdbDatabase
中有一个名为GetReplicaID()
的成员函数已不在CDaoDatabase
中。有谁知道如何使用CDaoDatabase
类或其他方式获取Access数据库的副本ID?
以下是该帖子的重要内容: -
“从Visual C ++ .NET开始,Visual C ++环境和向导不再支持DAO(尽管包含DAO类,您仍然可以使用它们。)Microsoft建议您为新项目使用OLE DB模板或ODBC。您只应在维护现有应用程序时使用DAO。
DAO MFC库(包括ddao35d.lib)是PlatformSDK的一部分,与新的MFC不兼容。你应该#include,它将链接daouuid.lib。“
...
“添加和daouuid.lib是诀窍。加:将CdbLastOLEError的声明更改为CDaoErrorInfo .CdbLastOLEError仍在,但显然不再在ddao35.lib中。更改为CDaoErrorInfo并链接添加daouuid .lib已更正链接器错误。“
答案 0 :(得分:0)
我找到了解决方案..您可以直接通过CDaoDatabase类中的m_pDAODatabase成员访问DAO。 EG: -
CDaoDatabase dbDatabase;
COleVariant varReplicaID( "", VT_BSTRT );
HRESULT hr;
hr = dbDatabase.m_pDAODatabase->get_ReplicaID(& V_BSTR(&varReplicaID) );
有关详细信息,请参阅