dll的生成与编写
一、dll生成的环境
1、IDE:vs2003
2、编程语言:c++
二、dll的编写过程
1、建立dll工程
在vs2003的菜单选项中,选择“新建项目”,选择“visual C++的win32”,之后输入要新建的名字,在之后弹出的对话框中选择“dll”,另外把复选框“空项目”勾上。
2、dll的编写
#include <string>
using namespace std;
#ifdef FLVDLLDEF
#define FLVDLLAPI extern "C" __declspec(dllexport)
//#define FLVDLLAPI __declspec(dllexport)
#else
#define FLVDLLAPI extern "C" __declspec(dllimport)
//#define FLVDLLAPI __declspec(dllimport)
#endif
class IFlvDetector
{
public:
virtual void StartDetector(string strHtml)=0;
virtual string GetResultString()=0;
};
FLVDLLAPI IFlvDetector* CreateFlvDetector();
FLVDLLAPI IFlvDetector* CreateFlvDetector();
上面这段代码应该被包含是两个工程中,一个是dll的工程,另一个是调用dll的应用程序的工程中。其中在dll的工程中,应该在项目属性的预处理器定义中加上“FLVDLLDEF”的命令,这样子在dll中,就会生成包含导出函数的lib和dll。在调用dll的应用程序工程中,不用加“FLVDLLDEF”,这样子就会在这个工程中导入头文件中的函数。其中对外的接口,是CreatFlvDetector()。生成该对象之后,就可以调用StartDetector()和GetResultString()。
三、dll的注意事项
1、在dll工程中,会生成两个文件:dll和lib文件。其中dll是包含实际代码的文件,lib是dll中的导出函数的符号表。
2、在调用dll的工程中,需要三个文件:dll、lib、头文件。
1)dll文件应该放在exe的同一个文件夹中。
2)lib文件需要包含是应用程中。具体的过程是:在调用dll的应用程序工程中,选择项目属性,之后在“连接器”选项卡中,选择“输入”,之后再选择“附加依赖项”,在后面添加lib的名字即可。
3)头文件,应该被调用dll的应用程序工程中include,和其他的标准头文件是一样的。