如何创建 ATL DLL






2.40/5 (8投票s)
2006 年 5 月 16 日
3分钟阅读

65314

1476
本文展示了如何在 VC++ 中简单地创建和使用 ATL DLL。
引言
在我学习编程之前,当我还是 Visual Basic 的初学者时,我对 DLL 一无所知,不知道它们里面有什么样的代码,也不知道它们是做什么的。现在,我知道它们非常有用。因为,我们可以把我们的函数放在 DLL 中,使我们的代码更简单、更流畅、也更快。我们可以通过升级我们想要的 DLL 来更新我们的代码。我们可以把我们的资源放在 DLL 中并使用它们。因此,通过使用 DLL,我们的应用程序将以一种简单的方式进行升级。
在本文中,我们将学习如何创建一个 ATL DLL,初始化它,然后使用它 - 一件非常简单的事情。
1. 创建 DLL
首先,我们必须创建一个 DLL。所以,按照这些步骤操作
- 打开 Microsoft Visual Studio,点击“文件”菜单,然后选择“新建”,然后选择“项目...”。
- 在“项目类型”中,选择“Visual C++ 项目”,然后点击“ATL”。
- 在“模板窗口”(右侧),选择“ATL 项目”,给它一个名称,然后点击“确定”。
- “ATL 项目向导”出现。然后,左键点击“应用程序设置”
- 如果您想在您的 DLL 中使用 MFC,请取消选中“已属性化”复选框。MSDN 说
“此属性会自动实现
DllMain
、DllRegisterServer
、DllUnregisterServer
、DllGetClassObject
和DllCanUnloadNow
。” - 如果您想在您的 DLL 中使用 MFC,请取消选中“已属性化”复选框,并选中“支持 MFC”复选框。
- 如果您想在您的 DLL 中使用 MFC,请取消选中“已属性化”复选框。MSDN 说
- 选择其他选项,如图片,然后点击“完成”。
- 在“解决方案资源管理器”窗口中,点击“类视图”,右键点击您的项目名称,指向“添加”,然后选择“添加类...”。
- 在“添加类”窗口中,在“模板”窗口中选择“ATL 简单对象”,然后点击“打开”。
- 在出现的窗口(ATL 简单对象向导)中,在“短名称”文本框中,为您的对象提供一个名称(在其前面没有字母 C)。
- 保持其他选项不变,然后点击“完成”按钮。
- 现在,我们有了我们的 DLL。我们现在应该向其中添加一个函数。
- 在“解决方案资源管理器”中,右键单击您的对象名称,指向“添加”,然后选择其中一个项目(满足您目的的那个)。
- 我已经选择了“添加方法”项目。
- 选择顶部的yourobjectname.cpp选项卡。
- 在块中插入您的代码,然后从顶部选择“发布...”。
- 在“调试”菜单中,选择“开始”(或按 F5),点击“是”。
- 现在 DLL 已正确发布,您可以从发布文件夹下的项目地址中获取它。
就是这样!
2. 初始化 DLL(导入和使用)
现在,要测试您的 DLL(或使用它),创建一个 MFC 项目。按照以下步骤初始化 DLL
- 用途
#import "drive:\\folder\\dllname.dll" rename_namespace ("namespacename") using namespace namespacename;
- 从yourobjectname声明一个公共指针变量。
- 初始化您的 DLL
::CoInitialize(NULL); HRESULT hr=::CoCreateInstance(__uuidof(yourobjectname), NULL, CLSCTX_ALL,__uuidof(Iyourobjectname), (LPVOID*)(&variablename));
- 现在,我们已准备好使用我们简单的 DLL 和我们简单的方法。
- 完成...
只是不要忘记注册它!
3. 为什么我的 DLL 在另一台电脑上无法工作?
当您在另一台电脑或新安装的操作系统上运行使用 DLL 的应用程序时,它将给您一个错误。那么我应该怎么做呢?当您使用 Microsoft Visual Studio 创建 DLL 时,它会自动在 Windows 中注册您的 DLL。所以您(或您的应用程序)必须做这些简单的事情
- 打开“开始”菜单并打开“运行”窗口(或按 Win 徽标键 + R)。
- 在“打开”字段中,键入REGSVR32 DllAddress(确切位置以及应用程序使用它的地方)。
- 点击“确定”(或按 Enter 键)。
- 消息“DlRegisterServer in pathname succeeded”出现。
祝您编码愉快!