那就直接回复到这里吧
由于v5.1和v6.0的数据库不同,所以我做的用户登录dll在v6.0中不能使用。我没有使用过v6.0,不知道如何使之兼容,所以将源码发上,希望大家修改。
程序结构很简单:
1、寻找数据库名称(先找工程名称,然后确定数据库名称);
2、登录数据库,查找用户名;
3、调用Wincc的useadmin.DLL中的PWRTSilentLoginFCT函数,判断是否是正确的用户名和密码。
我使用的是ADO,在LoginDlg.cpp文件中有BOOL CLoginDlg::OnInitDialog(),其中登录WinCC数据库的方法如下:
::CoInitialize(NULL);
hr=m_pConnection.CreateInstance(__uuidof(Connection));
CString strDB = "Data Source=" + m_strDBName;
hr=m_pConnection->Open((_bstr_t)((LPCSTR)strDB),"","",NULL);
hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("SELECT * FROM PW_USER",
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
应该修改“CString strDB = "Data Source=" + m_strDBName;”。
点击此处查看附件