mfc dll如何导出类

2002dingding 2003-12-10 10:12:11
我要在mfc dll中,非mfc 扩展dll,也不是非mfc dll,导出一个类,如何实现呀
...全文
374 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fengtt 2004-01-05
  • 打赏
  • 举报
回复
AFX_EXT_CLASS 好像只能用在扩展 dll 中吧
zjjzcgao 2004-01-05
  • 打赏
  • 举报
回复
用这种方法就好了,简单多了:
class AFX_EXT_CLASS classsName::functionName{
..
}
zjsunjifu 2003-12-15
  • 打赏
  • 举报
回复
可以导出,我刚做了个规则MFC DLL的类导出,不过有很多细节好注意.除了,上面提到的外,还要注意在主程序中,一定别忘了了给类对象定义加个class关键字.
形式如下:
class AAA_API MyDll m_AAA
spark_zh 2003-12-15
  • 打赏
  • 举报
回复
不用扩展的dll可以导出类吗?
上面几位说的方法是哪种dll用的?
ultralzl 2003-12-15
  • 打赏
  • 举报
回复
看《windows核心编程》里面的DLL两章讲的比较详细。
廿间楼主 2003-12-11
  • 打赏
  • 举报
回复
to:bluebohe(薄荷):我是按照你的方法做的
bluebohe 2003-12-11
  • 打赏
  • 举报
回复
呵呵,想不到我的东西也要被别人广为传抄了:
http://expert.csdn.net/Expert/topic/2514/2514628.xml?temp=.4149897

导出类很简单的
在你的DLL中Alt+F7中有一个C/C++中preprocessor definitions编辑框添加AAA_EXPORTS定义,然后在头文件类定义之前添加
#ifdef AAA_EXPORTS
#define AAA_API __declspec(dllexport)
#else
#define AAA_API __declspec(dllimport)
#endif
然后在你的类的声明前添加AAA_API ,就象上面一样,在主工程中包括这个头文件,主工程中在ALT+F7的LINK选项卡添加该DLL的.LIB文件。OK
廿间楼主 2003-12-11
  • 打赏
  • 举报
回复
coyer(test)说的没错,在你的DLL中Alt+F7中有一个C/C++中preprocessor definitions编辑框添加MYDLL_EXPORTS定义,然后在头文件类定义之前添加
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif

然后在你的类的声明前添加MYDLL_EXPORTS,就象class MYDLL_API CMyDll一样,在主工程中包括这个头文件,主工程中在ALT+F7的LINK选项卡添加该DLL的.LIB文件。

我自己也刚刚做过,应该可以的。
2002dingding 2003-12-10
  • 打赏
  • 举报
回复
不行呀
coyer 2003-12-10
  • 打赏
  • 举报
回复
一般来说,在你的新建类.h里面里面定义如下:

#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif

然后这样写你的类:
class MYDLL_API CMyDll
{
...
}

即可。
这样生产的Dll的编译lib文件和头文件加入到你的示例工程里面就可以使用这个CMyDll类了。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧