子类虚函数调用无效

这种情况出现的比较少,从工作到现在将近一年时间就遇到两次。

主要表现为子类重载了父类的虚函数后,使用正常方法(即父类指针指向子类对象后调用该虚函数),结果调用的仍为父类的函数。

一开始以为是指针指向有问题,或者虚函数的声明名称写错了这种小问题,但是检查后都是正确的。

更详细的情况:基于cad的二次开发,实际上述的子类是某个继承于AcDbEntity类的自定义构件,在cad打开情况下,绘制一个实体后,其并没有调用子类的虚函数。

而将图纸保存关闭cad后,再重新打开可发现之前绘制的实体都能正常调用子类虚函数了。

基本来说,这个详细情况并不能推敲出太多原因,在此也只是记录一下。

-----------------------------------------------------------------------------------------------------------------------------------

最后考虑到可能是只重编了修改的模块,其他关联模块未编译导致生成的dll和dbx文件之间无法正常调用。

在相关的模块都重新编译后,函数调用果然恢复正常。

根据以往的情况来看,只编译修改的模块,关联模块不重新编译的确有可能出现一些奇怪的问题。

当然,更多的问题还是无法匹配导致文件加载失败(比较明显)。

虽然更细致的原因暂时没查出来,不过问题也算解决了。

可喜可贺可喜可贺。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值