MFC类不知道,普通类是有办法可以做的

解决方案 »

  1.   

    zlq961672(张利权) ,能讲详细点吗?
      

  2.   

    可以使用,使用AppWizard来产生一个DLL工程时,选择MFC Extension Dll就可以了,AFX_EXT_CLASS就是用于将一个类从DLL中输出的。
      

  3.   

    感谢您使用微软产品。
     
    在一个可执行文件中加载一个DLL可以有两种方法,一种是在可执行文件启动时由操作系统的加载程序查看可执行模块的输入节,设法找出任何需要的DLL,并将它们映射到进程的地址空间中,这种方法称为静态加载(隐式)。另一种方法是在应用程序运行时,通过LoadLibrary函数动态的把DLL映射到进程的地址空间中,这种方法称为动态加载(显式)。您在问题中提到的(拷贝MyClass.h到应用程序的路径中,再改project下setting)的方法,应该是指静态加载(隐式)DLL。根据您对问题的描述, 您问的是一个包含类的DLL是不是能够动态加载(显式),即在程序运行中用LoadLibrary函数来加载该DLL。
     
    事实上,包含类的DLL是能够动态加载的。您可以在程序中通过GetProcAddress函数来调用该动态加载的DLL中的导出函数。然而您在程序中将无法象使用一个普通实现的类那样来使用该DLL中实现的类。甚至无法声明该类的一个实例(如果该类的构造函数不是在头文件中实现)。而且该类中的成员变量等资源将不属于调用该DLL的可执行文件所有,而属于该DLL所有。所以如果有多个程序同时调用该DLL,您必须留意进程同步的问题。
    - 微软全球技术中心 VC技术支持
     
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
      

  4.   

    用class __declspec(dllexport) MyClass导出!
      

  5.   

    acptvc(微软全球技术中心 VC技术支持) ,如果我的DLL中有一对话框类CMyDlg,动态加载DLL时如何在程序中弹出此对话框?