C++生成dll以及如何引用自己生成的dll,本文对应的代码下载地址如下:
http://download.csdn.net/detail/shenshendeai/9674484
生成dll:
文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:XXX
应用程序类型:DLL
项目建成后,添加自己的类newdll.h
#ifdef DLL_TEST_API
#else
#define DLL_TEST_API _declspec(dllimport)
#endif
class DLL_TEST_API myDLLClass{
public:
int Add(int a, int b);
int sub(int a, int b);
};
#else
#define DLL_TEST_API _declspec(dllimport)
#endif
class DLL_TEST_API myDLLClass{
public:
int Add(int a, int b);
int sub(int a, int b);
};
然后添加newdll.cpp
#define DLL_TEST_API _declspec(dllexport)
#include "stdafx.h"
#include "newDLL.h"
#include <iostream>
using namespace std;
int myDLLClass:: Add(int a, int b)
{
int add_result = a + b;
return add_result;
}
int myDLLClass:: sub(int a, int b)
{
int add_result = a - b;
return add_result;
}
#include "stdafx.h"
#include "newDLL.h"
#include <iostream>
using namespace std;
int myDLLClass:: Add(int a, int b)
{
int add_result = a + b;
return add_result;
}
int myDLLClass:: sub(int a, int b)
{
int add_result = a - b;
return add_result;
}
最后生成项目就可以了
引用生成的DLL
新建一个一般项目 XXXX
将上述程序生成的dll,lib和newdll.h文件复制到一个文件夹,如X:\dllFile\
打开项目 -> 项目属性 -> 配置属性 -> VC++目录 -> 包含目录 加入newdll.h所在目录的绝对路径 (X:\dllFile\),以分号间隔
打开项目 -> 项目属性 -> 配置属性 -> VC++目录 -> 库目录 加入lib所在目录的绝对路径 (X:\dllFile\)
打开项目 -> 项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项 中填上newdll.lib(以分号间隔),点击右下角 应用 确定
工程调用dll时首先在工程文件目录中查找dll,找不到后在C:\Windows\System32 中找。所以我们自己项目简单调用dll时就把生成的dll文件复制到工程目录中,如果经常用可以把dll文件放到C:\Windows\System32中
引用程序代码如下:
#include "stdafx.h"
#include "iostream"
#include "newDLL.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
myDLLClass mydll ;
// int a = Add(2,4);
cout<<"hello "<<mydll.sub(4,2)<<endl;
system("pause");
return 0;
}