主机Windows窗体(c#)内部MFC应用程序(vc++,VS6.0)

本文关键字:vc++ 应用程序 VS6 内部 Windows 窗体 主机 MFC | 更新日期: 2023-09-27 18:01:42

今天下午看了一堆书,没有任何实际的结果。是否有可能在使用VC6开发的MFC应用程序中托管windows窗体对话框?

出现的问题是,我们有一个大的应用程序,从来没有升级到新的Visual studio,因为VC6一直工作。现在我们需要在其中添加一些c#功能。我无法做/clr选项,因为我们的项目完全由非托管c++组成。我在我们所有的库/头文件中搜索了"CWinFormsControl",没有找到任何东西。我不确定下一步该尝试什么。

同时,请原谅我的无知,因为我正在做研究,对这种深度的编程不熟悉。

我查看了以下文章:

  • http://msdn.microsoft.com/en-us/library/676cbawx (v = vs.100) . aspx
  • http://social.msdn.microsoft.com/forums/en - us/vclanguage/thread/97fddc35 e94d - 4587 - 8 be0 - 0 - b573185eb63/
  • http://msdn.microsoft.com/en-us/library/ahdd1h97 (v = vs.80) . aspx
  • http://www.functionx.com/visualc/Lesson04.htm
  • http://social.msdn.microsoft.com/Forums/sk/vcgeneral/thread/c38db22e-cf61-4b47-bcc8-e6202c40d1b5

主机Windows窗体(c#)内部MFC应用程序(vc++,VS6.0)

CWinFormsControl需要MFC 8.0.

你可以使你的托管程序集一个COM服务器(例如ActiveX),并使用它在MFC应用程序像任何其他COM服务器。

我没有VC6铺设来尝试这个,但我认为它应该是可能的;至少对于一个简单的模式ShowDialog()场景。

您将使用c++/CLI创建一个新的程序集/DLL,使用/clr标志进行编译。这将向现有的MFC代码公开一个非托管API,使用通常的__declspec(dllexport)。该实现将调用c#代码,而c#代码中又存在另一个程序集。