dll初始化卡死

来源:互联网 发布:淘宝十大创意网店 编辑:程序博客网 时间:2024/05/22 05:13

今天调试对话框程序的时候发现一个问题,一启动程序立马卡死,刚还能运行的,也没改什么就不行了;于是开始在主对话框的入口下断点,一直下到最开始的App::InitInstance()都没运行到,搞得我都重启电脑了。重启后自然还是不行,于是只好换个思路,在调用的dll入口下断点,一运行还真就卡这儿了,一看刚加的写日志;在调试进去发现卡在lock_guard这里,我就郁闷了,就这一个地方加的锁怎么也死。后来网上看到才知道:DLL初始化的时候,有可能其它系统DLL还没有加载好,于是调用一些系统函数就容易出问题。所以在dll初始化的时候尽量少使用系统功能。

解决办法就是:dll的初始化如果需要调用系统功能,那么封装成函数给使用者调用;同理,dll的卸载时如果需要调用系统功能,也要封装成函数给使用者调用。

原创粉丝点击