本人做了一个DLL 函数原形为
void CheckKey( void *dummy )
{
_endthread();}
long MsgSend()
{ beginthread(CheckKey, 0, NULL );
return 0;}
我以下面的三种顺序
1:
LoadLibrary
重复调用三次MsgSend方法
FreeLibrary2:
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary3:
LoadLibrary
调用MsgSend方法
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary
以上三种调用顺序十分奇怪的是只有第二种调用顺序会出现access violation错误而当我把MsgSend方法调整为
long MsgSend()
{ beginthread(CheckKey, 0, NULL );
Sleep(100);
return 0;}
这样以后,三种调用顺序居然全部正常,请哪位大虾能告诉我这究竟是为什么吗?
void CheckKey( void *dummy )
{
_endthread();}
long MsgSend()
{ beginthread(CheckKey, 0, NULL );
return 0;}
我以下面的三种顺序
1:
LoadLibrary
重复调用三次MsgSend方法
FreeLibrary2:
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary3:
LoadLibrary
调用MsgSend方法
LoadLibrary
调用MsgSend方法
FreeLibrary
LoadLibrary
调用MsgSend方法
FreeLibrary
以上三种调用顺序十分奇怪的是只有第二种调用顺序会出现access violation错误而当我把MsgSend方法调整为
long MsgSend()
{ beginthread(CheckKey, 0, NULL );
Sleep(100);
return 0;}
这样以后,三种调用顺序居然全部正常,请哪位大虾能告诉我这究竟是为什么吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货