我正在使用Win32应用程序,在此DoModal函数返回-1且GetlastError()返回6(无效的句柄)。我尝试删除GDI句柄以修复GDI排气,结果失败。
附加信息:
我正在使用Visual Studio 2012,并且此应用程序适用于Compact 2013。
if(!bDeviceOpened)
{
bDeviceOpened=OpenDriver();
if(bDeviceOpened == 0)
{
AfxMessageBox(_T("Please make sure the driver is up and runnning"));
return FALSE;
}
}
//Reading the Driver version
DWORD nBytesReturned = 0;
if(!GetOID(OID_RPS_DRIVER_STATS, &stats, sizeof(stats), &nBytesReturned) )
{
AfxMessageBox(_T("Failed to query the stats"));
}
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
为什么我没有对话框?
最佳答案
当您的资源没有通过对话框正确映射时,DoModal()返回-1。如果您进入 DoModal(),则会发现以下语句
我建议您调用 AfxSetResourceHandle(); DoModal()之前的函数。
关于c++ - DoModal返回-1 Getlasterror说无效的句柄,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29070488/