问一个很菜的问题?怎样写dll文件,怎样导出和导入类?

Eagle_999 2000-09-07 01:53:00
我以前没有写过dll文件,现在要写dll文件,应该怎样写?要做那些工作,请各位仁兄不吝赐教!!!
使用dll时的错误:
unresolved external symbol "public: virtual __thiscall CReportCtrl::~CReportCtrl(void)" (??1CReportCtrl@@UAE@XZ)
是什么意思?
谢谢
...全文
214 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyongyue 2001-03-01
  • 打赏
  • 举报
回复
谢谢holly,我用你提供的方法成功倒出了类,倒入也没问题
Holly 2000-09-07
  • 打赏
  • 举报
回复
使用DLL有几种方法:
1.显示调用:用LoadLibrary,需要知道引出表中函数名字;
2.隐式使用:
(1).将与DLL的同时生成的.lib文件添加到工程中(直接用Add files to project...);
(2).在工程的Project->Settings->Link->Object/Library modules输入框中添加;
maptrix 2000-09-07
  • 打赏
  • 举报
回复
你好像忘了在使用DLL的工程里加上,制作DLL的工程中生成的ReportCtrl.lib,加上这个lib就不会再链接的时候出上述错误了!
Holly 2000-09-07
  • 打赏
  • 举报
回复
纠正观念!
DLL引出类与MFC无关,所以也不必一定用MFC扩展DLL才能引出,只有你的类是从MFC中继承时才需要!

在DLL的工程中也可以使用ClassWizard创建MFC的继承类!如要引出可以在类的声明处添加:
class __declspec(dllexport) MyClass : public CListCtrl
{
};
则MyClass就会在DLL的引出表中自动添加!
在MFC中__declspec(dllexport)已经被定义成:
AFX_CLASS_EXPORT
AFX_DATA_EXPORT
AFX_API_EXPORT
都可以使用!
不过要注意直接用上面的写法有问题,需要引用该类的地方将:
__declspec(dllexport)替换为__declspec(dllimport)
所以需用一点编译的技巧!
建议你用VC新建一个工程:
WIN32 Dynamic-link Library
在第二个向导页选择“A DLL that exports some symbols”
Finish!
然后分析一下变量、函数和类的导出方法和编译技巧!你会明白的!

Eagle_999 2000-09-07
  • 打赏
  • 举报
回复
能具体一点吗?
我用的是MFC扩展DLL;
我想从CListCtrl继承生成一个新类,该怎么办??
iforever 2000-09-07
  • 打赏
  • 举报
回复
导入导出类要写扩展DLL.
而不是常规DLL.

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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