我在Com中开的线程中触发连接点事件Fire_XXXXEvent为什么程序运行时报错呢??

lwglucky 2004-07-13 11:48:43
我在Com中开的线程中触发连接点事件Fire_XXXXEvent为什么程序运行时报错呢??
如果不在线程中运行触发事件就没有问题
UINT GenDataThread(LPARAM lp)
{
CSimu * psimu = (CSimu*)lp;
for (;;){
psimu->Fire_InterruptEvent(); ----报错
Sleep(400);
}
return 1;
}
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pfans 2004-11-20
  • 打赏
  • 举报
回复
??
wangweixing2000 2004-07-30
  • 打赏
  • 举报
回复
for (;;){
psimu->Fire_InterruptEvent(); ----报错 //看看psimu是否正确?
Sleep(400);
}
shudingbo 2004-07-30
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3187/3187905.xml?temp=.9661981
lwglucky 2004-07-14
  • 打赏
  • 举报
回复
顶一下
lwglucky 2004-07-13
  • 打赏
  • 举报
回复
我是在接口类构造函数中创建了一个挂起的线程。
InitializeCriticalSection(&m_crisection);
DWORD dw(0);
m_hThread = 0;
m_hThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)GenDataThread, this, CREATE_SUSPENDED , &dw);

x线程函数
static UINT CSimu::GenDataThread(LPARAM lp)
{
CoInitliaze();
CSimu * psimu = (CSimu*)lp;
psimu->Fire_InterruptEvent();
return 1;
}
luohualiushui 2004-07-13
  • 打赏
  • 举报
回复
你是什么时候创建新线程的?
把代码贴出来看看
lwglucky 2004-07-13
  • 打赏
  • 举报
回复
我是在Com服务器触发客户端回掉函数invoke时出错的。
lwglucky 2004-07-13
  • 打赏
  • 举报
回复
我vb客户端是这样写的。
Dim WithEvents sim As COSIMULATORLib.Simu
Private Sub Command1_Click()
sim.Start True
End Sub
Private Sub Command2_Click()
sim.Start False
End Sub

'Private Sub sim_OnInterrupt()
' ' sim.CaptureData pt(0)
'End Sub

Private Sub Form_Load()
Set sim = New COSIMULATORLib.Simu
sim.SetInterruptFreq 10
sim.SetInterruptDataNum 500
End Sub


Private Sub sim_InterruptEvent()
'
End Sub
lwglucky 2004-07-13
  • 打赏
  • 举报
回复
我加了,还是报错。。
luohualiushui 2004-07-13
  • 打赏
  • 举报
回复
没有初始化com库

加上CoInitliaze();

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧