关于MFC Regular DLL 写的一个SOCKET通信 多线程的问题
我用MFC Regular DLL 写了一个DLL,在里面应用了多线程
UINT CSocketClient::ThreadStart(LPVOID pParm)
{
CCriticalSection threadcs;
threadcs.Lock();
CSocketThread socket;
if(!socket.Create())
return 1;
if(!socket.Connect("10.90.128.24",1500))
return 2;
socket.SendFun();
threadcs.Unlock();
return 0;
}
int CSocketClient::ThreadFun()
{
AfxBeginThread(ThreadStart,this);
return 0;
}
当我程序执行到(!socket.Create())变会出现异常(Unhandled exception in vb6.exe(socksend.dll)0xc0000005,Access violation) ,
void* CMapPtrToPtr::GetValueAt(void* key) const
// find value (or return NULL -- NULL values not different as a result)
{
if (m_pHashTable == NULL)
return NULL;
这个DLL是用在vb中
如果我把他换成USE MFC A Share DLL的话,就没什么问题了。不知道是什么原因
2、在线程中访问数据库为什么路径老是不对,不在线程中就可以了那
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Para.mdb","","",adModeUnknown);
谢谢大家