Примечание Я написал этот ответ, предполагая, что ОП хотел буквально встроить собственную DLL, содержащую форму, в приложение .NET, а не просто изменить способ ее отображения.
Короче, нет.Вам нужно будет упаковать C ++ DLL с вашим дистрибутивом и импортировать / обернуть его функции так же, как вы это делаете сейчас.
Кажется, я вспоминаю из моего Delphi (который использует тот же серверкак Borland C ++) дни, когда конструктор форм генерирует код C ++, который создает цикл winproc / message и т. д. для каждого из активов в форме через Win32 API.
Поскольку весь этот код неуправляем, он не может быть скомпилирован в управляемую сборку.Вы могли бы перенести его на управляемый C ++, но это убило бы большую часть преимуществ использования C ++ для начала, и вы застряли с дрянной моделью исключений и всеми другими замечательными частями C ++.В этом случае вам, вероятно, было бы лучше просто переписать его на C #.
Но, поскольку это программное обеспечение, и почти все возможно, вот действительно неудачное решение: встроить DLL как двоичный ресурс вваше приложение .NET и, во время выполнения, извлекает его содержимое в двоичный поток, сохраняет его на диск и затем загружает его (я не уверен, что есть способ выполнить неуправляемую DLL из памяти, кроме обмана путем установкиэто на диске RAM).
Единственное, что вы получаете, это возможность скрыть DLL, но я действительно не вижу в этом смысла.
Редактировать Вы имеете в виду встраивать как в show как дочернее окно, или встраивать как на месте код в .NET-проекте?