Прежде всего, запись части C ++ в другой файл DLL не означает, что она не может быть в том же решении, что и проект C #.
Чтобы использовать собственный DX для рендеринга в управляемом окне, вам нужно передать идентификатор окна HWND (используйте form.WindowId.ToInt32) в C ++ D3Ddevice c'tor. после этого каждый раз, когда вы будете рендерить, используя это устройство, он будет рендериться в окне .NET.
Для этого вам, вероятно, понадобятся два проекта saparate - проект C ++ dll & .NET. используйте оболочку COM или p-invoke для передачи HWND в dll C ++.