微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

奇特的病毒功能修复了无法解析的外部符号

如何解决奇特的病毒功能修复了无法解析的外部符号

我刚刚继承了一些旧代码。问题方法调用的地方。我在底部有两个解决方案,但是为什么使问题方法虚拟化呢?

OtherClass::someOtherMethod() {
    // problemmethod(Manager* manager,const ConfigClass* config)
    obj->problemmethod(man,conf); // conf is not const in this file which therefore does not match the params list.
}

现在在obj .h和.cpp中,该方法具有以下形式(我检查cpp和h都匹配)。

    problemmethod(Manager* manager,const ConfigClass* config);

尝试构建时,OtherClass :: SomeOtherMethod中有未解决的外部对象,不知道问题方法在哪里。

两个解决方案:更改.h和.cpp中的problemmethod并删除co​​nst。哪个工作,构建和运行。或将问题方法设为虚拟。为什么要使其虚拟化?我的猜测是,因为它是虚拟的,所以会延迟到运行时为止,这可以防止链接错误,然后稍后再解决... ???关于链接错误的令人困惑的部分是,Visual Studio在该方法上按F12键时会找到它并知道它在哪里。

解决方法

已解决:

问题在于,在OtherClass.h中,当Config是一个类时,该配置已被向前声明为结构。它没有在vs2010中抱怨这一点,但是在vs2017中对此有所抱怨

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。