Я не знаю ни одного учебного пособия для этого; но это не должно быть большой проблемой вообще. Я пытался реализовать что-то вроде этого, и это работало нормально для меня, ниже приведена последовательность шагов, которые я сделал:
1.Добавьте в свое решение библиотеку «Пользовательский элемент управления wpf» или «Пользовательский элемент управления wpf».
2. Добавьте новый класс окна WPF (Add-> Window -> ...) в новый проект. Затем добавьте все, что вам нравится в wpf, в новое окно, чтобы проверить, работает ли оно позже
3. Добавьте новый класс и интерфейс к проекту библиотеки и определите его, как в примере ниже:
[ComVisible(true)]
[Guid("694C1820-04B6-4988-928F-FD858B95C881")]
public interface ITestWPFInterface
{
[DispId(1)]
void TestWPF();
}
[ComVisible(true)]
[Guid("9E5E5FB2-219D-4ee7-AB27-E4DBED8E123F"),
ClassInterface(ClassInterfaceType.None)]
public class TestWPFInterface : ITestWPFInterface
{
public void TestWPF()
{
Window1 form = new Window1();
form.Show();
}
}
4. сделайте вашу сборку видимой (ключ взаимодействия COM для регистрации на вкладке Build свойств проекта) и присвойте ему строгое имя (см. Вкладку подписи); сгенерируйте ключ с помощью утилиты sn
5. После всего вышесказанного у вас будет файл your_wpf_lib.tlb, сгенерированный в папке debug \ release
6. В вашем приложении c ++ (я полагаю, у вас есть исходники для него и вы можете перекомпилировать), добавьте следующую строку:
импорт
"C: \ full_path_to_your_tlb \ your_wpf_lib.tlb"
это должно создать соответствующий файл tlh в папке вывода отладочной информации вашего проекта win32.
7. Теперь вы можете вызвать свою форму из кода C ++:
TestWPFForms::ITestWPFInterfacePtr comInterface(__uuidof(TestWPFForms::TestWPFInterface));
comInterface->TestWPF();
это должно показать вашу форму wpf.
Также я считаю, что ссылки ниже могут быть полезны для вас:
Вызов управляемых .NET C # COM-объектов из неуправляемого кода C ++
Обзор взаимодействия WPF и Win32
надеюсь, это поможет, с уважением