Вот несколько решений.
1) Если вы хотите включить CLR, вы можете использовать код Visual C ++ .NET, чтобы просто вызвать форму, скомпилированную в сборке C #.
2) Если вы не можете включить CLR, и ваша визуальная программа C ++ может использовать COM для инициализации формы C #. Создайте COM-объект в вашем приложении C # для размещения формы. Создайте фабрику COM для реализации модели LocalServer32 для DCOM. Это не простая процедура, поэтому используйте ее с осторожностью
3) Если вместо этого форму C # можно преобразовать в пользовательский контроль C #, то вы можете превратить свой пользовательский контроль C # в ActiveX и использовать его вместо этого. Это помогает, если ваша программа на C ++ может содержать элементы управления ActiveX. Если вы используете ATL или MFC, у вас не должно быть особых проблем.