lft_8888
驱动牛犊
驱动牛犊
  • 注册日期2007-09-06
  • 最后登录2010-01-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1317回复:3

dll里的线程调用指针函数出错

楼主#
更多 发布于:2008-06-21 22:49
dll线程创建如下
void (*gCallBack)(void);
void callback();
void callback()
{
dword num=0;
}
DWORD SPL_Init(DWORD dwContext)
{
    Tim_handle= CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,NULL,0,NULL);
CeSetThreadPriority(Tim_handle,THREAD_PRIORITY_TIME_CRITICAL);
gCallBack=callback;
    return 1;                                    
}
DWORD WINAPI ThreadProc(PVOID pArg)
{
(*gCallBack)();
return 1;                                    
}
debug输出错误如下
Exception 00e Thread=83d18d94 Proc=a3f67a72 'device.exe'
2315563 PID:a3f67a72 TID:c3cfe302 0x83d18d94: AKY=00000009 PC=00000000(???+0x00000000) ESP=0825fc9c EA=00000000

请教 是什么原因啊 ?
lft_8888
驱动牛犊
驱动牛犊
  • 注册日期2007-09-06
  • 最后登录2010-01-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-22 16:20
                         
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
板凳#
发布于:2008-06-23 13:09
gCallBack=callback;提到创建线程前面调用,你新创建的线程优先级比较高,抢占了主线程,先运行了,而这时gCallBack=callback;还没有调到,所以出问题了。
hoho2008
驱动牛犊
驱动牛犊
  • 注册日期2008-06-24
  • 最后登录2008-06-24
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-24 20:01
回复主题文章
不错,顶一个哈










-----------------------------------------------------------------------------------
男人健康茶座:阳痿原因症状 阳痿预防治疗 早泄原因症状 早泄预防治疗 阴茎增大增粗
游客

返回顶部