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類的代碼能夠正常工作嗎? 謝謝。