请大侠进来show一下你的代码吧,小弟不知道怎么写这样的代码啊!请进---->

时间:2022-11-14 15:39:49
动态库初始化时(init_dll()),创建一个线程,在exit_dll()中销毁线程.
然后如果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);
  }
……
}

#5


去www.vckbase.com找找吧
应该能找到对你有帮助的例子

#1


自己定义一个回调函数原型,由调用者设置该回调函数

#2


实例一下啊.

#3


异步处理太麻烦了,你为什么不使用select呢

#4


自定义一个函数指针,在处理中调用,如:

typedef DWORD (*pCallBack)(LPVLID pParam);
// 然后某个函数用pCallBack作为参数
void fun(pCallBack cbEntry)
{
……
  if (cbEntry)
  {
     cbEntry(pParam);
  }
……
}

#5


去www.vckbase.com找找吧
应该能找到对你有帮助的例子