LoadLibrary,vs__vfptr查错过程

来源:互联网 发布:上网限制软件 编辑:程序博客网 时间:2024/05/17 03:50

问题描述:

框架中使用了LoadLibrary(它可以淋漓尽致地发挥动态库的优势,独立。完全独立。)

1,我有一个【Manager对象】

2,【Manager对象】中有个【Load对象】。

自己写了个跨平台的的Load,姑且叫它【Load类】,他的设计在~Load()释放动态库,另一个有意思的地方,它是在库提供的函数接口中new 出【client对象】

3,【Manager对象】中有个从【Load对象】来的【client对象】


真正的问题来了,

现在【Manager对象】析构,好嘛,现在是先析构【Load对象】,再析构【client对象】。

在【client对象】析构的时候,TMD崩掉了。


分析原因:只是站在一个浅层的面

【Load对象】析构会把动态库也卸了,这时候===》(从属关系)【Load对象】的【client对象】也就失效了。

深层次的原因,没有时间去研究了。


解决方案:

做一个LoadHandler类,此类包含【client对象】,然后在析构函数中控制析构的对象。


接下来:

在心里留个印象,这个具体的原因,以后级别到了再分析。



原创粉丝点击