在DLL中使用HP-Socket时退出DLL时卡死
sinfee opened this issue · 3 comments
sinfee commented
在规则DLL中使用HP-Socket时,退出DLL时,设置了在ExitInstance函数中退出连接,调用CTcpClientPtr对象的Stop()时无法成功退出。
中断后发现函数是在WaitForMultipleObjectsWithMessageLoop中的::MsgWaitForMultipleObjects 中。
请问应该如何解决呢?
ldcsaa commented
你这应该是在socket线程中调用stop了。
可以通过组件的析构函数自动断开连接。
sinfee commented
感谢指导。我是在一个DLL中使用HP-Socket并封装成导出的C方式函数,这个DLL是嵌入在其他应用程序中调用的,所以主程序是否在线程中调用DLL中的输出函数是没办法限制和更改调用方式的。这种方式应该如何使用HP-Socket呢?
ldcsaa commented
试试在 DllMain() 的 DLL_PROCESS_DETACH
事件中执行Stop。