# What's a vtable? What's an IUnknown?

DevFeed: [What's a vtable? What's an IUnknown?](<https://devfeed.tech/articles/what-s-a-vtable-what-s-an-iunknown-39729.md>)

Original publisher: [Read original article](<https://www.timdbg.com/posts/vtables/>)

Author: Tim Misiak

Published: 2022-12-18T15:30:09Z

Content type: tutorial

Language: en

Sources: [TimDbg](<https://devfeed.tech/sources/timdbg.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [debug](<https://devfeed.tech/topics/debug.md>), [MSVC](<https://devfeed.tech/topics/msvc.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [class](<https://devfeed.tech/tags/class.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [function](<https://devfeed.tech/tags/function.md>), [msvc](<https://devfeed.tech/tags/msvc.md>), [virtual](<https://devfeed.tech/tags/virtual.md>), [windows](<https://devfeed.tech/tags/windows.md>)

## AI overview

This tutorial explains how C++ virtual function tables, or vtables, support dynamic dispatch and how they relate to COM objects on Windows. It also introduces debugger-based techniques for examining vtables and discusses errors that can be difficult to diagnose.

## Source excerpt

Understanding vtables (also called VMT/Virtual Method Tables or VFT/Virtual Function Tables) is important for understanding how many C++ features work on any OS. They are even more important to understand on Windows, where vtables are used for communication between modules using COM. There are a few types of errors that can happen when things go wrong with them, and some of these will be extremely difficult to diagnose unless you understand how vtables actually work.