CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

急!急!MFC 扩展DLL 导出类在应用程序中该怎么用?

楼主Johdan001(王坤)2003-04-02 10:49:31 在 VC/MFC / 进程/线程/DLL 提问

我用MFC   生成扩展DLL,   在该DLL中声明一个类   CMyClass,在其声明中加入AFX_EXT_CLASS,进行编译后,我想在应用程序中声明该类的对象,我是这样做的:  
  首先将DLL和LIB文件加到应用程序相应的位置,然后将类CMyClass   的头文件拷贝至应用程序所在的当前目录,然后在应用程序的头文件包含该文件#include   "MyClass.h"   ,然后声明:_delspec(dllimport)MyClass   m_MyClass;  
  可编译该应用程序还是出错,为什么?请高手指教!  
   
  问题点数:20、回复次数:11Top

1 楼nlstone(天外流星)回复于 2003-04-02 11:09:22 得分 0

最后的声明不需要。  
  确认DLL工程有宏定义_AFXDLL     和   _AFXEXT  
  确认当前工程无宏定义_AFXDLL     和   _AFXEXT    
  Top

2 楼o_racle(璐璐)回复于 2003-04-02 11:15:25 得分 0

若使用动态链接DLL,则这样做是不行的。你可以在DLL中定义一个函数调用CMyClass   的对象,然后导出这个函数。  
  若使用静态链接DLL,则问题简单咦。Top

3 楼Johdan001(王坤)回复于 2003-04-02 11:21:24 得分 0

非常感谢各位,我是个新手,希望多多赐教!Top

4 楼Johdan001(王坤)回复于 2003-04-02 11:36:18 得分 0

回nlstone:  
   
  我按照你说的去做,可还是不能够编译成功,能否发个小例子,非常感谢!zzk@casiosoft.com.cnTop

5 楼yowen(jyw)回复于 2003-04-02 13:23:13 得分 10

class   AFX_EXT_CLASS   CMyClass   :   public   CDialog  
  {  
          ......  
  }  
   
  将DLL拷贝debug目录,LIB文件和类CMyClass   的头文件拷贝到工程目录  
  在应用程序的头文件加入#include   "MyClass.h"    
   
  CMyClass   dlg;  
  dlg.DoModal();  
   
   
  注意!不必声明:_delspec(dllimport)MyClass   m_MyClass;  
   
  Top

6 楼Johdan001(王坤)回复于 2003-04-02 13:54:42 得分 0

回yowen(jyw)   :我按照你说的去做可是还不行,出现如下错误:请指教我这是日文版的操作系统  
   
   
  testApp.obj   :   error   LNK2001:   外部シンボル   ""__declspec(dllimport)   public:   virtual   __thiscall   CMyClass::~CMyClass(void)"   (__imp_??1CMyClass@@UAE@XZ)"   は未解決です  
  testAppDlg.obj   :   error   LNK2001:   外部シンボル   ""__declspec(dllimport)   public:   virtual   __thiscall   CMyClass::~CMyClass(void)"   (__imp_??1CMyClass@@UAE@XZ)"   は未解決です  
  testAppDlg.obj   :   error   LNK2001:   外部シンボル   ""__declspec(dllimport)   public:   __thiscall   CMyClass::CMyClass(class   CWnd   *)"   (__imp_??0CMyClass@@QAE@PAVCWnd@@@Z)"   は未解決です  
  testAppDlg.obj   :   error   LNK2001:   外部シンボル   ""__declspec(dllimport)   public:   void   __thiscall   CMyClass::test(void)"   (__imp_?test@CMyClass@@QAEXXZ)"   は未解決です  
  Debug/testApp.exe   :   fatal   error   LNK1120:   外部参照   3   が未解決です。  
  link.exe   の実行エラーTop

7 楼In355Hz(好象一条狗)回复于 2003-04-02 18:47:55 得分 10

没有加入   *.lib   文件到应用程序的工程里?试试    
   
  #pragma   comment(lib,   "*.lib")Top

8 楼flysundy(毛毛虫)回复于 2003-04-03 09:19:56 得分 0

gzTop

9 楼Johdan001(王坤)回复于 2003-04-03 13:16:34 得分 0

非常感谢各位的回答,这个问题已经得到解决,我是在www.codeguru.com上查到的  
  如果哪一位需要可以跟我联系:  
  Top

10 楼xqybb(xqybb)回复于 2003-04-04 16:20:44 得分 0

可否将解决方法说一下,非常感谢Top

11 楼Johdan001(王坤)回复于 2003-04-07 19:59:25 得分 0

首先:在声明的类前面加上:AFX_EXE_CLASS  
  然后:在要用到该类的头文件中包含该这个类的头文件。  
  最后,   在菜单工程中的设置中要加上该dll的.lib   文件所在的路径  
   
   
  是不是很简单,Top

相关问题

  • 如何编写DLL应用程序
  • 如何将动态链接mfc的应用程序,发布给最终用户。都需要带那些dll?
  • *************如何将包含多个类(MFC)的应用程序封装成DLL?(信誉良好)
  • 怎样将现有MFC应用程序改为dll形式的自定义控键?
  • 应用程序中应如何做导入导出功能?
  • 水晶报表在VB应用程序中的导出
  • 水晶报表在VB应用程序中的导出
  • 我把用MFC开发的应用程序拿到没有MFC的环境上运行,需要拷贝几个DLL啊
  • 非MFC应用程序如何显示调试信息(TRACE只能在MFC应用程序中使用)?
  • dos 下的win32应用程序与mfc应用程序究竟有何区别?(null)

关键词

  • 应用程序
  • 文件
  • 拷贝
  • dll
  • cmyclass
  • は未解決です
  • testappdlg
  • 类
  • dllimport
  • thiscall

得分解答快速导航

  • 帖主:Johdan001
  • yowen
  • In355Hz

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo