这里有点历史课。我正在开发一个遗留的 C++/MFC 应用程序,并试图通过推送用 C#(WinForms 和更高版本的 WPF)编写的组件来开始增量现代化。
我坚持使用 .Net/1.1 和 VS/2003 有很多原因,这些原因在不久的将来无法解决。
目前,作为概念证明,类似这样的工作:
#pragma push_macro("new")
#undef new
WinFormA::Form1* myform;
myform = __gc new WinFormA::Form1();
myform->ShowDialog();
#pragma pop_macro("new")
我遇到的问题是 - 我需要非托管 C++/MFC 代码将回调指针传递给托管 C# WinForm 代码,以便我可以捕获用户交互并让应用程序处理它们。
我看过一些文章,例如这个 MSDN 文章,但它在 VS/2003 中不起作用(编译器不喜欢委托语法)。
还有其他选择吗?我认为我不能使用 DLLImport,因为我需要与特定的应用程序实例而不是平面 API 进行交互。
谢谢!