У меня есть устаревшая программа delphi, и я хочу добавить контент, реализованный в WPF. Поэтому я инкапсулирую элемент управления WPF с помощью технологии взаимодействия .NET / ActiveX. Это означает что-то вроде:
[ComRegisterFunction()]
public static void RegisterClass(string key);
[ComUnregisterFunction()]
public static void UnregisterClass(string key);
Компонент activeX является пользовательским элементом управления WinForms, а материалы WPF прикреплены к ElemenHost в этом пользовательском элементе управления.
Работает нормально, если хост-приложение этого ActiveX - это программа MFC, даже без ключа / clr. Но мое старое приложение - это программа delphi, и она всегда выдает исключение stackoverflow в первой строке конструктора моего пользовательского элемента управления WPF при запуске программы.
сообщение показывает исключение:
An unhandled exception of type 'System.StackOverflowException' occurred in PresentationFramework.dll
Понятия не имею, Google не поможет. и это озадачило меня на несколько дней.