You sure can link C to C++. But when you introduce pure (or not) virtual interfaces, then vtables get used.
Plus, an application that supports multiple renderers (d3d/ogl) will probably call LoadLibrary on d3d9.dll.