Visual Studio .NET 2002Visual Studio 6Visual C++ 7.0Visual Studio .NET 2003Windows 2000Visual C++ 6.0Windows XP中级开发Visual StudioWindowsC++
DLL很简单。第一部分






3.49/5 (128投票s)
2004年9月10日
2分钟阅读

187195

2637
如何创建DLL并使用它们。
引言
有些程序员认为DLL很复杂,但实际上它们就像EXE一样。 但是我见过一些程序员不会构建DLL。 有多种方法可以创建DLL。 对于与exe一起使用,最简单的方法是“隐式链接”。 这样,我们需要DevStudio生成的.LIB文件。 下面,我们创建一个DLL,然后将其与exe一起使用。 在DLL内部,我们计算(乘)从exe发送的两个数字。 实际上,exe是“发送者/接收者”,DLL是“计算器”。
如何构建MFC DLL?
- 运行 VC++。
- 选择:文件 > 新建。
- 创建“MFC AppWizard (DLL)”(例如:MyFirstDll)。
- 在文件顶部声明
// #define DLLEXPORT __declspec(dllexport) //
__declspec(dllexport)
的目的是将“导出指令”添加到目标文件。 因此,您不需要.DEF文件。 为了使代码更具可读性,为__declspec(dllexport)
定义一个宏:DLLEXPORT
。 - 现在对于您要导出的每个函数,在它之前输入:“
DLLEXPORT
”,像这样DLLEXPORT int Multiply(int ParOne,int ParTwo) { int Mlt=ParOne*ParTwo; return Mlt; }
- 按“构建”按钮。
- 从“烤箱”中取出DLL!!
请注意,链接器还会构建一个“导入库”,其DLL名称相同,但具有.lib扩展名。
如何使用MFC DLL?
- 运行 VC++。
- 选择:文件 > 新建。
- 创建“MFC AppWizard (exe)”。
- 选择“基于对话框”。
- 选择:项目 > 添加到项目 > 新建 > C/C++头文件。
- 命名文件,例如:Imports。
- 在Imports.h中声明
// #define DLLIMPORT __declspec(dllimport) //
__declspec(dllimport)
的目的是将“导入指令”添加到目标文件。 为了使代码更具可读性,为__declspec(dllimport)
定义一个宏:DLLIMPORT
。 - 在它之后输入
DLLIMPORT int Multiply(int ParOne,int ParTwo);
这是您在DLL中定义的相同函数。 在这里,它被引入为“导入函数”。 但是,对于当前项目而言,它是无法识别的,我们必须为链接器解析它。
- 将先前项目中 release 或 debug 文件夹(取决于当前项目设置)中的.lib文件复制到当前目录项目,因为它必须与exe链接。 在.lib文件(相同的导入库)内部,存在有关DLL的导出函数的信息。
- 返回VC++环境,选择:项目 > 设置 > 链接(选项卡)。
- 在“对象/库模块:”中键入 [先前项目的.lib文件]。 例如,MyFirstDll.lib。 然后按“确定”。 它将解析外部链接。 这里是“
int Multiply(int ParOne,int ParTwo);
”函数。 - 因为我们打算在...Dlg.cpp文件(例如SimpleDllDlg.cpp)中使用该函数,所以在文件顶部键入
// #include "Imports.h" //
- 现在您可以像这样使用DLL的导出函数了
void CDllFunDlg::OnMltply() { UpdateData(TRUE); m_Result=Multiply(m_ParamOne,m_ParamTwo); UpdateData(FALSE); }