vtable

    0热度

    3回答

    基本上,我有一个纯虚拟类Base和一个从Base继承的具体类Derived。然后我分配一块内存并将其视为通过简单的演员派生的数组。然后,我使用=填充数组。最后,我遍历数组,试图调用在Base中声明并在Derived中定义的虚方法GetIndex。 问题是我最终得到一个访问冲突异常,试图读取指向vtable Base的指针(在Visual Studio调试中,这显示为__vfptr,并且始终为0xb

    1热度

    2回答

    我在网上阅读了一些关于Vtable thunk的文章,并且我在某处读到thunk可以用来钩住/连锁程序调用。 它可以实现吗? 有没有人知道这是如何工作,我也无法找到很好的资源解释thunk。 对此有何建议?

    7热度

    2回答

    好了,所以这是一个很长升技解释跟我这么裸.. 我有一个名为exe文件test.exe的这通常是作为一个独立单独应用。我想在另一个应用程序app.exe中使用这个exe作为一个模块(一个dll)。 在test.exe的代码确实非常简单喜欢的东西: void doTest() { MyClass *inst = new MyClass(); inst->someMethod();

    10热度

    9回答

    虚拟类的每个对象都有一个指向vtable的指针吗? 还是只有具有虚函数的基类的对象才拥有它? vtable存储在哪里?代码段或数据段的过程?

    10热度

    4回答

    更新:用直线方法调用示例替换了析构函数示例。 嗨, 如果我有以下代码: class a { public: virtual void func0(); // a has a VTable now void func1(); }; class b : public a { public: void func0() { a::func0(); } v

    3热度

    6回答

    我目前正在一个相当大(和老,叹)代码库,最近升级到VS2005(SP1)。我和我的团队正在改变/更新/替换此代码中的模块,但我们偶尔会遇到vtables似乎破裂的问题。我不是vtables的专家,但这些确定似乎已被打破。错误表现与此错误: Run-Time Check Failure #0 - The value of ESP was not properly saved across a fun

    2热度

    4回答

    我在想,编译A类的一个编译器不允许多重继承,并且编译一个支持它的类B(而B类是从A类派生的),会产生什么后果。 我真的不明白链接过程...可以一起使用两者吗?在这种情况下使用不同的编译器有什么不利之处?使用B类的代码能够正常工作吗? 谢谢。