实在没法再开一贴,很急的啊。求救!!!
问题如下:
我用个线程去执行操作时,第一次能够线程执行成功,但第2次继续执行到:hr = mpIRapiDesktop->EnumDevices(&mpIRapiEnumDevices);hr得到的值是E_INVALIDARG,如果关掉程序重新执行也是只能执行一次。
部分代码如下:
线程代码:
我用个线程去执行操作时,第一次能够线程执行成功,但第2次继续执行到:hr = mpIRapiDesktop->EnumDevices(&mpIRapiEnumDevices);hr得到的值是E_INVALIDARG,如果关掉程序重新执行也是只能执行一次。
部分代码如下:
HRESULT hr = S_OK;
clearSession();
addNewInfo(_T("Try to connect a device....."));
CoInitialize(NULL);
// Create an instance of the IRAPIDesktop interface.
hr = CoCreateInstance(CLSID_RAPI,
NULL,
CLSCTX_INPROC_SERVER,
IID_IRAPIDesktop,
(void**)&mpIRapiDesktop);
if (hr ==0 && mpIRapiDesktop)
{
addNewInfo(_T("CoCreateInstance success"));
}else{
addNewInfo(_T("CoCreateInstance failure"));
return false;
}
// Call EnumDevices to obtain an enumeration of connected devices.
hr = mpIRapiDesktop->EnumDevices(&mpIRapiEnumDevices);
线程代码:
UINT CCESyncDlg::ThreadProc(LPVOID param) //线程函数
{
//数据库的初始化
DBConnectionFactory* pFactory =NULL;
try
{
pFactory=DBConnectionFactory::getIntance();
pFactory->initPool();
}
catch(DatabaseException e)
{
TRACE(e.what());
}
CCESyncDlg* pThread=(CCESyncDlg*)param;
pThread->SyncFun();//实现部分
Sleep(1000);
DBConnectionFactory::releaseInstance();
AfxEndThread(RetThread);
return RetThread;
}
void CCESyncDlg::OnBnClickedSync()
{
// TODO: 在此添加控件通知处理程序代码
ExitCode=0;
m_iThread=AfxBeginThread(ThreadProc,(LPVOID)this);
GetDlgItem(IDC_STOP)->EnableWindow(true);
return ;
}
...全文
相关推荐
每日一贴的制作
"每日一贴的制作"这个主题可能涉及到的是创建和维护一种日常分享 IT 知识或技术贴子的流程。在IT行业中,这种“每日一贴”可能是为了分享最新的技术资讯、编程技巧、软件使用心得或者系统管理经验。
LED显示屏三合一表贴与三并一表贴本质区别
在封装成本和生产工艺上,三并一表贴明显优于三合一表贴。由于三并一表贴使用整个面发光,整体颜色均匀性更高,相比三合一表贴局限于点发光的方式来说,更为先进。
Win10 磁贴修改工具 自定义磁贴
**创建自定义磁贴组**:通过工具,用户可以将相关的应用磁贴组合在一起,形成一个新的磁贴组,便于快速访问和管理。6.
行业分类-设备装置-全自动纸盒开装封贴带一体机.zip
设备构成与工作原理:全自动纸盒开装封贴带一体机通常由进料系统、开盒装置、装填装置、封口装置、贴带装置、出料系统以及控制系统等部分组成。
贝尔RG200o-ca开路由技术贴
总的来说,贝尔RG200o-ca开路由技术贴是一个详细的教程,指导用户如何通过修改光猫设置来启用其路由功能,从而满足家庭网络的需求。


