在visual studio开发生态下,DLL(dynamic link lib ,动态链接库)是重要的组件之一,可以这样描述程序 ,DLL和用户三者的关系:程序包含用户使用者的用户交互界面,受用户驱动,而程序把一部分可以复用的代码,或资源例如图片等放到DLL里,需要的时候完成动态加载,DLL类似通用的组件,封装了使用频繁的程序功能与资源,因此学会适度的分割软件功能到小的DLL里,可以让程序更容易分发和维护。
步骤一,首先建立项目,在建立项目的时候选择windows应用程序,然后在生成向导的时候选择空项目。
在空项目中,你需要建立两个文件,一个头文件.h,一个实现文件.cpp
下面是头代码片段:
#pragma once
#include
namespace nmspace{
class webSearcher {
public:
static _declspec(dllexport) void showMyMessage();
};
}
头文件非常简单,就声明了一个方法showMyMessage,用来向控制台上打印一条文本信息。
下面是实现文件:
#include
using namespace std;
#include "DLLDemo.h"
namespace nmspace{
void webSearcher::showMyMessage() {
cout << "thins is message inside a Dll file.";
}
}
当这两个文件都生成后,就可以进行 {项目-生成解决方案了},成功后,你会看到在DLL项目下会
有两文件:DLLDemo.obj和DLLDemo.dll.
到这里一个简单的Dll项目就生成了,输出了一个简单的DLL动态连接库组件。
步骤二 完成对上述DLL组件的调用
首先需要生成个控制台项目,然后在该项目里的头文件夹里引入DLL文件的头文件DLLDemo.h
其次你需要生成一个实现文件.cpp它的代码片段如下:
#include
using namespace std;
#include "DLLDemo.h"
namespace nmspace{
void webSearcher::showMyMessage() {
cout << "thins is message inside a Dll file.";
}
}
当这些工作都完成后,你需要完成DLL引入,具体是选择{项目-项目属性 alt+F7 }在弹出的对话框下
进行如下设置{配置属性-连接器-输入}在右边的面板中,选择编辑[附加依赖项]在其中填写DLLDemo.lib
记住是DLLDemo.lib而不是DLLDemo.dll
完成后点击{应用按钮}并按确定按钮,关闭该对话框,接着你就可以生成解决方案里,到这里,你就完成了
通过一个简单的控制台程序来调用DLL的过程。
注意:
如果你想到debug文件夹里通过双击exe文件来执行控制台应用程序的时候,需要提前把DLLDemo.dll文件
复制到与EXE文件同级的目录上才可以。