Wo genau crashed es und was genau für ein Fehler tritt dort auf? Was sagt die D3D Debug Runtime?
Wenn du schon aus einer Funktion dynamisch erzeugte Objekte returnest (was hier eigentlich nicht wirklich notwendig sein sollte), solltest du aus dieser Funktion einen
std::unique_ptr returnen. Generell solltest du unbedingt Smartpointer und RAII einsetzen, auch für deine D3D Objekte und COM Objekte im Allgemeinen.
_VertexBuffers bzw. generell jeder Name, der mit einem
_ gefolgt von einem Großbuchstaben beginnt, ist ein reservierter Name, der in einem standardkonformen C++ Programm nicht verwendet werden darf.
Auch sehe ich, das du nur ein Buffer erstellst.
Hast du schon mal etwas von Vertex Shader und Pixel Shader gehört?
Wenn nicht, würde ich Nachforschungen drüber machen, da diese ein grosses Standteil von Direct3D ist(Grafik).
Ohne Shader wird er kaum was rendern können. Was genau die Anzahl der Buffer mit Vertex und Pixel Shadern zu tun haben soll, ist mir ein Rätsel...