在工程或科研中,我们经常要使用自己编写的函数库。比较直接的方法是,我们可以在每个工程中把相应的头文件和源代码文件增添进去(Project -> Add Existing Item),但这样比较麻烦。尤其当自己的函数库包含众多文件是,这个方法非常浪费时间。另一种方法是,我们可以把自己的函数库生成dll,使用的时候结合头文件来调用。这样省时省力。本文主要描述了后者的实现与使用过程。
1). 首先创建自己的dll项目。打开Visual Studio,新建一个Win32 Console Application,项目名为ZWang_library。
2). 在Application Setting中,选择DLL和Empty Project。
3). 添加头文件ZWang_library.h,内容后附。
4). 添加源文件ZWang_library.cpp,内容后附。
5). 在project -> ZWang_library properties -> Configuration Properties -> General -> Configuration Type中选择Dynamic Library (.dll)
6). 编译ZWang_library,生成dll和lib
7). 然后创建另一个Win32 Console Application项目,这个项目将调用生成的dll文件。这里项目名为ZWang_calldll
8). ZWang_calldll.cpp内容见后附。
9). 在project -> ZWang_calldll properties -> Configuration Properties -> C++ -> General -> Additional Include Directories中添加ZWang_library.h的路径。
10). 在project -> ZWang_calldll properties -> Configuration Properties -> Linker -> General -> Additional Library Directories中添加ZWang_library.lib的路径。
11). 在project -> ZWang_calldll properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies中添加ZWang_library.lib。
12). 编译ZWang_calldll,将ZWang_library.dll放到包含ZWang_calldll.exe的文件夹中。运行程序。
代码1 ZWang_library.h
#ifndef _ZWANG
#define _ZWANG
#include <iostream>
#include <string>
namespace ZWANG
{
using namespace std;
__declspec(dllexport) void call_from_dll(const string &str = "Call the funtion from dll.");
}
#endif _ZWANG
代码2 ZWang_library.cpp
#include "ZWang_library.h"
namespace ZWANG
{
void call_from_dll(const string &str)
{
cout << str << endl;
cout << "Success!" << endl;
}
}
代码3 ZWang_calldll.cpp
#include "stdafx.h"
#include "ZWang_library.h"
using namespace std;
using namespace ZWANG;
int _tmain(int argc, _TCHAR* argv[])
{
call_from_dll("Hello world!");
call_from_dll();
cin.get();
return 0;
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/e7531906bbdb44b254d08c639a32792c.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/2790984893c7bada3664a37d05646015.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/9dd1c711319a14dc9006e2fe314b6ada.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/475e3152ae8675ffa4a3ab164c268903.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/1685d70e21ca03f1ec87d796ea3b7f62.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/f1cee3a917eb139ac3747343c78cffff.jpeg)
![Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll Visual <wbr>Studio下建立并隐式调用自己的动态链接库dll](https://i-blog.csdnimg.cn/blog_migrate/db2469c21a8be72c78110e2e942e45c7.jpeg)
代码1 ZWang_library.h
#ifndef _ZWANG
#define _ZWANG
#include <iostream>
#include <string>
namespace ZWANG
{
}
#endif _ZWANG
代码2 ZWang_library.cpp
#include "ZWang_library.h"
namespace ZWANG
{
}
代码3 ZWang_calldll.cpp
#include "stdafx.h"
#include "ZWang_library.h"
using namespace std;
using namespace ZWANG;
int _tmain(int argc, _TCHAR* argv[])
{
}
原文链接:我也没找到,转自:http://blog.sina.com.cn/s/blog_6e0693f70100sn4a.html
侵删!