概述
下面介绍如何创建一个dll项目。
我们自己写的类或函数,都可以导出成一个dll供他人使用,比如自己写的一个File操作类或加载某种格式文件的类等。
首先创建一个dll项目:
我们还是在前面创建的解决方案下再新建一个dll项目,用来导出一些公用的功能函数。
在解决方案上右键,添加新项目:
选择Win32项目,项目命名为MyDLL,单击浏览按键,选择Project文件夹,这是我们之前自己建的一个文件夹,专门用来存放各个项目的项目相关文件。
单击下一步,选择"DLL"和"空项目"两个选项,完成。
好了,现在Dll项目创建完成了,现在向项目添加.cpp和.h源代码文件。就像我们上面将项目文件都放在Project文件夹下一样,我们把源文件都放在Src文件夹下,在Src文件夹下新建一个MyDll文件夹,选择该文件夹。我们可以把.cpp和.h文件都放在这个文件夹下。
最后一步就是设置项目属性了。具体可以参考前面的文章。否则编译生成的文件都会与项目文件在同一目录下,即Project/MyDll中。
这里因此项目简单,没有依赖其他的Dll所以只设置debug和release中的输出目录和中间目录。
项目创建完了,现在在.h中添加如下代码:
// AddCal.h
#ifndef _ADD_CAL_H_
#define _ADD_CAL_H_
#ifdef MYDLL_EXPORT
#define EXPORT_DLL _declspec(dllexport)
#else
#define EXPORT_DLL _declspec(dllimport)
#endif
EXPORT_DLL int Add(int a, int b);
class EXPORT_DLL Point
{
public:
Point(int _x, int _y);
public:
void print();
private:
int m_x;
int m_y;
};
#undef EXPORT_DLL
#endif
在.cpp中添加如下代码:
// AddCal.cpp
#include "AddCal.h"
#include <iostream>
int Add(int a, int b)
{
return (a + b);
}
Point::Point(int _x, int _y)
:m_x(_x), m_y(_y)
{
}
void Point::print()
{
std::cout <<"x:"<< m_x << " y:" << m_y << std::endl;
}
我们在这里分别导出一个Add()函数和一个Point类。
上述代码完成之后,还要在属性对话框中添加预定义宏: CC++->预处理器定义 中添加MYDLL_EXPORT;
编译一下,在lib的项目目录下生成相应的dll和lib文件。
现在我们在另一个项目中引用该dll文件。
我们在NYOJ_001项目中引用刚才MyDll中生成的Dll,首先首先将上面生成的dll拷贝到项目NYOJ_OO1的.exe生成的目录下。然后设置项目属性,
设置CC++->常规->附加包含目录为 $(SolutionDir)SrcMyDLL
链接器->常规->附加库目录为 $(SolutionDir)Lib$(Platform)$(Configuration)
链接器->输出->附加依赖项 添加 MyDLL.lib
我们现在main函数中分别调用刚才导出的函数和类。
//main.cpp
#include <iostream>
#include "AddCal.h"
using namespace std;
int main()
{
int a = 1, b = 2;
cout << Add(a, b)<<endl;
Point pt(1, 2);
pt.print();
system("pause");
}
好了,运行看看:
来源: http://blog.csdn.net/lp310018931
最后
以上就是义气煎饼为你收集整理的如何创建dll工程的全部内容,希望文章能够帮你解决如何创建dll工程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复