com程序进入线程后抛出异常

问题描述

com程序进入线程后抛出异常

异常:
test.exe 中的 0x7663c42d 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0470f760 处的 COleException。
线程:
UINT DeviceAnalysis( LPVOID pParam )
{
CMainDialog* threaddlg = (CMainDialog*)pParam;
variant_t vtDeviceId, vtDeviceIds;
threaddlg-> job.GetAllDeviceIds(&vtDeviceIds);
CString str;
for(long index=1; index<=1000 && threaddlg->devanalysisflag; ++index)
{
/*SafeArrayGetElement(vtDeviceIds.parray, &index, &vtDeviceId); /
str.Format(_T("解析了%d"),index);
threaddlg->m_statusbar->SetText(str,0,0);
Sleep(50);
}
if (threaddlg->devanalysisflag == false)
{
}
return 0;
}
异常处:
long GetAllDeviceIds(VARIANT * ids)
{
long result;
static BYTE parms[] = VTS_PVARIANT ;
_
*InvokeHelper(0x16, DISPATCH_METHOD, VT_I4, (void*)&result, parms, ids);**

return result;
}

解决方案

程序中抛出异常

解决方案二:

不要在线程中更新界面。http://www.360doc.com/content/12/0227/15/1291795_190019081.shtml

时间: 2024-09-12 21:21:08

com程序进入线程后抛出异常的相关文章

原始套接字发送自己封装的TCP/IP包,加线程后速度也上不去是什么原因

问题描述 原始套接字发送自己封装的TCP/IP包,加线程后速度也上不去是什么原因 情况是这样,我需要发送自己构造的数据包,将数据封在TCP包中,然后再封在IP包中,最后再发送出去 现在要尽可能达到最快的发送速度,我的方案是先创建一个字符串数组,用于存放已经构造好的数据包,然后程序运行时先把数据包构造好并保存在数组中,然后在启动发包的线程 我的带宽是1000M,当启动一个线程时,发包速度大约是170M,CPU占用率40%左右,但是加到10个进程时速度也就是190M,cpu 50%---60%,加到

wpf-WPF多线程打开窗口,结束线程后窗口无法自动关闭

问题描述 WPF多线程打开窗口,结束线程后窗口无法自动关闭 有一个读取文件的程序在读大文件的时候容易假死,我用多线程打开一个窗口显示"正在读取,请稍后" ,当文件读取完了之后再用abort()和join()方法结束进程,但是后弹出的窗口依然还在屏幕上显示,必须用鼠标点一下其他任意地方,显示"正在读取,请稍后" 窗口才会消失,请问如何解决这种问题? ? public class Worker ? ?//多线程打开的窗口 { // This method will be

调试的时候并没有抛出异常,但是程序发布以后却抛出异常的一段代码

问题描述 一下代码在调试的时候并没有抛出异常,但是程序发布以后却抛出异常,请问有大牛之道是什么原因吗?try{//MessageBox.Show("m_allStationsInfo++"+m_allStationsInfo.Count.ToString());Stationstation=null;foreach(StationInfotmpinm_allStationsInfo){station=newStation(tmp.id);m_stationsDic.Add(tmp.id

Java程序运行超时后退出或进行其他操作的实现

当程序进入死循环或者由于其他原因无法自行终止的时候,就需要强制退出程序了. 对于开发软件 Eclipse ,在程序执行超时后,可以点击 Terminate 按钮强制退出. 那么,我们可不可以通过程序设置一定的时间,当程序运行超过该时长后自行终止或者进行其他操作呢? 查了大量资料后发现,Future类就能满足这个需求. Future类中重要方法包括get()和cancel(). get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载. 另外一个get(t

c语言-C语言怎样编写程序运行完后,不自动结束,而是返回程序的开始的主菜单?

问题描述 C语言怎样编写程序运行完后,不自动结束,而是返回程序的开始的主菜单? 我的程序运行完一个功能后按任意键就退出了,而不是返回主菜单 代码如下,应该怎么改?(具体一点,菜鸟一个)多谢! #include #include #include #include #include #define LENTEL sizeof(tel) #define ID struct tel struct tel { char name[15]; char tele[11]; char style[15]; c

PowerShel程序执行完后删除脚本自身的方法

  这篇文章主要介绍了PowerShel程序执行完后删除脚本自身的方法,本文直接给出代码实例,需要的朋友可以参考下 当脚本执行完成后,可以删除自身 代码如下: #删除脚本自身 remove-item $MyInvocation.MyCommand.Path -force

c++-程序运行结束后总是显示:Run-Time Check Failure #2

问题描述 程序运行结束后总是显示:Run-Time Check Failure #2 程序运行结束后总是显示:Run-Time Check Failure #2 - Stack around the variable 'cmd_value' was corrupted. 程序过程运行正确,调试发现程序运行结束之后就会报告这个错误.而且**只有d的数值在0到1(不包括1)**才会发生这样的错误.我的编程环境是vs2010. double d=0;BYTE cmd_star[]=""$&q

编程c语言-win8的codewriter要怎么用?程序编好后不能调试吗?而且好像不能运行啊∏_∏

问题描述 win8的codewriter要怎么用?程序编好后不能调试吗?而且好像不能运行啊∏_∏ win8系统,所以只好用codewriter了,但是发现程序编好后只能保存,既不能调试,也不能运行....大神求教,是codewriter本来就这副小婊砸的样子(╯3╰)还是我太弱不会用(>﹏<) 解决方案 看下是不是权限的问题,用管理员运行下. 解决方案二: shell程序编好后不能运行怎么回事?

service- 如何实现类似于微信的程序被杀死后,服务进程还在或稍后重启?

问题描述 如何实现类似于微信的程序被杀死后,服务进程还在或稍后重启? 微信或line在运行后会启动push服务,在我们杀死他们的应用进程后,服务进程并没有消失,我们再杀死这个服务进程后,会在一定的时间内进行重启,这应该是如何实现的呢?在整个应用被杀死后,他的BroadcastReceiver与service应该都是停止运行了的,是使用什么机制再次运行的服务呢?原帖地址:http://www.eoeandroid.com/thread-294003-1-1.html 解决方案 你可以除了启动正常的