
dll
imlmy
这个作者很懒,什么都没留下…
展开
-
FreeLibrary死锁问题
加载一个dll,退出的时候通过FreeLibrary进行释放,发现进入死锁状态,无法退出。一般这种情况是dll中的线程没有退出,导致一直处于等待状态。查看代码发现确实是在dll退出函数中调用::WaitForSingleObject(pLog->m_hSemaphore, INFINITE)一直在等待线程退出。线程是通过_beginthreadex进行创建,而在调用WaitForSingleObj原创 2013-04-07 13:57:49 · 4856 阅读 · 0 评论 -
DLL传递字符串数组输出参数
实现了一个数据库模块,提供枚举数据库服务器功能,返回所有数据库服务器名称。一开始想通过vector输出参数方式,在DLL中添加数据库服务器名称。不过在释放输出参数的时候出现错误,这是由于输出参数的资源是在DLL中申请,而在主程序中进行释放,如果申请和释放的方式不一致,就会导致释放出错。主要的解决方法就是谁申请谁释放。对于这种动态申请的资源,由于资源数量不确定,最好是由DLL来提供接口进行释放。原创 2013-06-25 09:27:54 · 4593 阅读 · 0 评论