Visual Studio 2015 打开出现无法打开淘宝登陆界面面

5被浏览560分享邀请回答01 条评论分享收藏感谢收起写回答以前在Visual Stuido 2010中运行正常的控制台程序,在Visual Studio 2015中出现乱码,找到《》这篇文章,原来是某个cs文件的保存格式为ANSI,在保存按钮右侧有一个编码保存,用UTF8另存后,编译运行OK!
阅读(...) 评论()08:43 提问
VS2010 MFC登录对话框打开数据库失败后意外出现主界面的问题
用VS2010 MFC建立了一个主界面为对话框的函数,要求需要登录对话框,且通过读取数据库来校验用户,代码如下:
BOOL CManagementDlg::OnInitDialog()//主对话框初始函数
CDialogEx::OnInitDialog();
_CLogInDlg dlgL
if(dlgLogin.DoModal() != IDOK)//登录对话框
return TRUE;
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX & 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
BOOL bNameV
CString strAboutM
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
pSysMenu-&AppendMenu(MF_SEPARATOR);
pSysMenu-&AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
执行此操作
SetIcon(m_hIcon, TRUE);
// 设置大图标
SetIcon(m_hIcon, FALSE);
// 设置小图标
ShowWindow(SW_MAXIMIZE);
// TODO: 在此添加额外的初始化代码
return TRUE;
// 除非将焦点设置到控件,否则返回 TRUE
登录对话框响应登录按钮的代码如下:
void CLogInDlg::OnClickedButtonLogin()
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
if(m_strLogUser.GetLength() == 0)
MessageBox(_T("请输入用户名!"));
CManagementDlg *pdlgMain = (CManagementDlg *)theApp.m_pMainW
CString strDataS
CString strInitC
CString strU
CString strP
CString strTableName = _T(TABLE_NAME_STAFF);
CAdoDBControl myAdoC//对象声明
CString strS
UINT iGet = 0;
iGet = CAdoDBControl::GetDbCfgFromIniFile();
if(iGet & INI_USERID_MISSING)
strShow.Format(_T("配置文件%s中未找到数据库用户名"), _T(INI_FILE_NAME));
MessageBox(strShow);
if(iGet & INI_PWD_MISSING)
strShow.Format(_T("配置文件%s中未找到数据库用户密码"), _T(INI_FILE_NAME));
MessageBox(strShow);
if(iGet & INI_DATASOURCE_MISSING)
strShow.Format(_T("配置文件%s中未找到数据库主机名"), _T(INI_FILE_NAME));
MessageBox(strShow);
if(iGet & INI_INITCATALOG_MISSING)
strShow.Format(_T("配置文件%s中未找到数据库名"), _T(INI_FILE_NAME));
MessageBox(strShow);
if(iGet & INI_FILE_MISSING)
strShow.Format(_T("配置文件%s未找到"), _T(INI_FILE_NAME));
MessageBox(strShow);
CAdoDBControl::GetDbCfg(strUser, strPassword, strDataSource, strInitCatalog);
CString strS
strSql.Format(_T("Provider=SQLOLEDB.1;Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Persist Security Info=FALSE"),
strDataSource, strUser, strPassword, strInitCatalog);int iResult = myAdoControl.Open(strSql.AllocSysString(), adModeUnknown);
if(ADO_DB_SUCCESSFUL != iResult)
strSql.Format(_T("SELECT * FROM %s WHERE 用户名='%s'"), strTableName, m_strLogUser);
vector& vSelectResult = myAdoControl.Select(strSql.AllocSysString());
myAdoControl.Close();
int iFindNumber = vSelectResult.size();
if(iFindNumber & 1)
CString strM
strMsg.Format(_T("用户%s不存在"), m_strLogUser);
MessageBox(strMsg);
_variant_t vUser = vSelectResult[0][STAFF_USERNAME_COLUMN];
_variant_t vPwd = vSelectResult[0][STAFF_PASSWORD_COLUMN];
CString strUserFromSql = (LPCTSTR)_bstr_t(vUser);
CString strPwdFromSql = (LPCTSTR)_bstr_t(vPwd);
if((!pareNoCase(m_strLogUser)) && (strPwdFromSql == m_strLogPwd))
pdlgMain-&m_stCurUser.m_strUserName = strUserFromS
_variant_t vElement = vSelectResult[0][STAFF_NO_COLUMN];
pdlgMain-&m_stCurUser.m_strStaffNo = (LPCTSTR)_bstr_t(vElement);
vElement = vSelectResult[0][STAFF_REALNAME_COLUMN];
pdlgMain-&m_stCurUser.m_strRealName = (LPCTSTR)_bstr_t(vElement);
vElement = vSelectResult[0][STAFF_AUTHORITY_COLUMN];
pdlgMain-&m_stCurUser.m_strAuthority = (LPCTSTR)_bstr_t(vElement);
MessageBox(_T("密码错误"));
为了使按回车键和点击登录按钮的功能一样,添加如下代码:
BOOL CLogInDlg::PreTranslateMessage(MSG* pMsg)
// TODO: 在此添加专用代码和/或调用基类
if(WM_KEYDOWN == pMsg-&message)
if(VK_RETURN == pMsg-&wParam)
OnClickedButtonLogin();
return FALSE;
return CDialogEx::PreTranslateMessage(pMsg);
打开数据库的代码如下:
int CAdoDBControl::Open(BSTR ConnectionString, long Options )
if( FAILED( m_pConnection.CreateInstance(__uuidof(Connection)) ) ) //初始化Connection指针
return ADO_DB_CREATE_FAIL;
m_pConnection-&Open(ConnectionString, "", "", Options);
catch(_com_error e)
AfxMessageBox(e.Description());
return ADO_DB_OPEN_FAIL;
return ADO_DB_SUCCESSFUL;
运行函数时,故意将数据库配置写错,在填写完用户名和密码后点击登录按钮,那么约10秒以后,程序报错“[DBNETLIB][ConnectionOpen (Connect()).]SQL Server
不存在或拒绝访问。”,点击确定后,返回登录对话框。重复多次操作,依然如此。程序此时是正常的。
但是,如果在填写完用户名和密码后,用回车方式登录,此时依然报错“[DBNETLIB][ConnectionOpen (Connect()).]SQL Server不存在或拒绝访问。”,但是在点击
确定后,登录对话框会消失,并且弹出主界面,且主界面不响应鼠标点击任何按钮,且主界面不是我想要的主界面(比如正常登录的主界面是最大化的,而此时出现
的主界面不是最大化的),此问题100%复现。
请问各位达人,这是怎么回事?有何解决办法?
按赞数排序
应该是你登陆对话框没有处理好回车按钮,导致对话框关闭了,对话框缺省是可以回车关闭的,你需要自己处理,让对话框不关闭
用回车方式登录,是不是触发了默认生成的ON_OK消息?
其他相关推荐}

我要回帖

更多关于 dota2 打开不出现界面 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信