我想在MFC程序中使用.NET控件.
   编译时,在以下几行代码,不能通过.
   BEGIN_DELEGATE_MAP( CDlgTestDlg)
   EVENT_DELEGATE_ENTRY( OnClick, System::Object^, System::EventArgs^ )
   END_DELEGATE_MAP()F:\Program Design\Microsoft Visual Studio 8\VC\include\msclr\event.h(26) : error C2039: “delegate_proxy_type”: 不是“CDlgTestDlg”的成员
        f:\program design\example\dlgtest\dlgtest\DlgTestDlg.h(10) : 参见“CDlgTestDlg”的声明
        .\DlgTestDlg.cpp(38): 参见对正在编译的类 模板 实例化“msclr::delegate_map::internal::delegate_proxy_factory<CLASS>”的引用
        with
        [
            CLASS=CDlgTestDlg
        ]
DlgTest.cpp
  请高手指点.

解决方案 »

  1.   

       刚刚又仔细看了MSDN,
     BEGIN_DELEGATE_MAP( CDlgTestDlg) 
      EVENT_DELEGATE_ENTRY( OnClick, System::Object^, System::EventArgs^ ) 
      END_DELEGATE_MAP()
    这几行代码应该放在头文件中,不是放在源文件里。
      

  2.   

    第一次见到在MFC中调托管,学习
      

  3.   

    我一直认为这不是一个好的做法,要么完全使用.net,要么全部使用非托管代码。要么程序相互调用,但不要混到一起编程。
      

  4.   

       各位大哥,大姐。本人在做一个项目。刚开始用VC6.0.到快完工的时候,觉得界面实在不怎么好看。想自己写控件,优化界面。不过,时间不等人,还是用.net控件吧。现成的,质量也不错。所以就只好用这招了。本来也想过完全用.net,不过本人没学过,要把VC6.0的代码完全转化成.net代码,好像有点困难。所以我不是在玩时髦。没办法的事啊,我们这些学艺不精的程序员,只能被Microsoft摆布。所以,我想,我们中国以后也要开操作系统,开发环境等,而且要在各方面超过Windows系列。所以,大家一起加油!
      

  5.   


    我感觉VC6可以调用托管组件,但能不能在VC6里加入托管代码就不好说了....
    你的VC6是原版的,还是你把SDK升级到VS2008只留了个shell?
    如果是升级了你还不如用CDHtmlDialog,界面绝对漂亮还不会涉及托管调用.
      

  6.   

    有本书《MFC应用程序在.NET框架下的扩展》你可以读一读