然后如果dll中有函数被调用(如do_sth1(), do_sth2(),就在线程中排队处理,还有一个关键就是,处理是否成功不得而知,里面是处理socket通信,会返回成功失败的信息,这需要异步处理.也就是需要写个回调函数来通知,如何写呢?小弟没找到这样的例子,自己也不知道怎么下手:(
恳请高手帮忙,我也浩学习学习!
比如
#define DLL_EXPORT __declspec(dllexport)
void DLL_EXPORT init_dll();
void DLL_EXPORT exit_dll();
void DLL_EXPORT do_sth1();
void DLL_EXPORT do_sth2();
还有,dll detach是也自动释放线程.
5 个解决方案
#1
自己定义一个回调函数原型,由调用者设置该回调函数
#2
实例一下啊.
#3
异步处理太麻烦了,你为什么不使用select呢
#4
自定义一个函数指针,在处理中调用,如:
typedef DWORD (*pCallBack)(LPVLID pParam);
// 然后某个函数用pCallBack作为参数
void fun(pCallBack cbEntry)
{
……
if (cbEntry)
{
cbEntry(pParam);
}
……
}
typedef DWORD (*pCallBack)(LPVLID pParam);
// 然后某个函数用pCallBack作为参数
void fun(pCallBack cbEntry)
{
……
if (cbEntry)
{
cbEntry(pParam);
}
……
}
#5
去www.vckbase.com找找吧
应该能找到对你有帮助的例子
应该能找到对你有帮助的例子
#1
自己定义一个回调函数原型,由调用者设置该回调函数
#2
实例一下啊.
#3
异步处理太麻烦了,你为什么不使用select呢
#4
自定义一个函数指针,在处理中调用,如:
typedef DWORD (*pCallBack)(LPVLID pParam);
// 然后某个函数用pCallBack作为参数
void fun(pCallBack cbEntry)
{
……
if (cbEntry)
{
cbEntry(pParam);
}
……
}
typedef DWORD (*pCallBack)(LPVLID pParam);
// 然后某个函数用pCallBack作为参数
void fun(pCallBack cbEntry)
{
……
if (cbEntry)
{
cbEntry(pParam);
}
……
}
#5
去www.vckbase.com找找吧
应该能找到对你有帮助的例子
应该能找到对你有帮助的例子