一、
1 在Visual C++ 里面选择Win32,新建一个Win32 Project工程,名称为mydll
2 在Application Settings窗口,Application type中选择 DLL; additional options中选择Empty project。点击完成
3 新建mydll.cpp和mydll.h两个文件
4 在mydll.h里面添加代码:
extern "C" __declspec(dllexport) int Min(int a, int b);
5 在mydll.cpp里面添加代码:
#include "mydll.h"
#include <stdio.h>
int Min(int a, int b)
{
printf("Min is called");
if (a >= b) return b;
else return a;
}
6 生成dll
7 把生成的 .lib文件拷贝到另一个工程(要调用的DLL项目)的目录下,把.dll文件拷贝到另一个工程(要调用的DLL项目)的debug目录下
8 另一个项目的调用代码如下:
#pragma comment(lib,"MyDll.lib") //功能:编译器在link时,链接到MyDll.lib文件,也可以在projection->Setting->Link页的Object/Moduls栏填入MyDll.lib既可。
extern "C"_declspec(dllimport) int Min(int a,int b);
#include <stdio.h>
int main()
{
int a;
a = Min(8,10);
printf("比较的结果为%d",a);
return 0;
}
使用 __declspec(dllimport) 从 DLL 导出:http://msdn.microsoft.com/zh-cn/library/a90k134d(v=VS.80).aspx
二、
1 在Visual C++ 里面选择Win32,新建一个Win32 Project工程,名称为mydll
2 在Application Settings窗口,Application type中选择 DLL; additional options中选择Empty project。点击完成
3 新建mydll.cpp和mydll.def两个文件
4 在mydll.def里面添加代码:
LIBRARY mydll
EXPORTS
Max @1
Min @2
5 在mydll.cpp里面添加代码:
int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}
int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
6 生成dll
7 把生成的 .lib文件拷贝到另一个工程(要调用的DLL项目)的目录下,把.dll文件拷贝到另一个工程(要调用的DLL项目)的debug目录下
8 另一个项目的调用代码如下:
.h
__declspec(dllimport) int Max(int a,int b);
__declspec(dllimport) int Min(int a,int b);
.cpp
#include <stdio.h>
#include "dllcall.h"
int main()
{
int a;
a = Max(8,10);
printf("比较的结果为%d ",a);
return 0;
}
9..然后配置工程属性
.dll所在的文件夹
使用 DEF 文件从 DLL 导出:http://msdn.microsoft.com/zh-cn/library/d91k01sh(VS.80).aspx
三、
隐式调用就把dll拷到项目文件夹下,把dll相应的头文件加进项目就好了;显式调用是同过LoadLibrary函数加载dll,通过GetProcAddress得到想调用的函数的地址然后作一个牵制转换后就可以调用了。即:隐式调用(通过lib和头文件)和显式调用(只通过提供的dll文件)。
http://www.cppblog.com/richardhe/articles/57428.html
1 在Visual C++ 里面选择Win32,新建一个Win32 Project工程,名称为mydll
2 在Application Settings窗口,Application type中选择 DLL; additional options中选择Empty project。点击完成
3 新建mydll.cpp和mydll.h两个文件
4 在mydll.h里面添加代码:
extern "C" __declspec(dllexport) int Min(int a, int b);
5 在mydll.cpp里面添加代码:
#include "mydll.h"
#include <stdio.h>
int Min(int a, int b)
{
printf("Min is called");
if (a >= b) return b;
else return a;
}
6 生成dll
7 把生成的 .lib文件拷贝到另一个工程(要调用的DLL项目)的目录下,把.dll文件拷贝到另一个工程(要调用的DLL项目)的debug目录下
8 另一个项目的调用代码如下:
#pragma comment(lib,"MyDll.lib") //功能:编译器在link时,链接到MyDll.lib文件,也可以在projection->Setting->Link页的Object/Moduls栏填入MyDll.lib既可。
extern "C"_declspec(dllimport) int Min(int a,int b);
#include <stdio.h>
int main()
{
int a;
a = Min(8,10);
printf("比较的结果为%d",a);
return 0;
}
使用 __declspec(dllimport) 从 DLL 导出:http://msdn.microsoft.com/zh-cn/library/a90k134d(v=VS.80).aspx
二、
1 在Visual C++ 里面选择Win32,新建一个Win32 Project工程,名称为mydll
2 在Application Settings窗口,Application type中选择 DLL; additional options中选择Empty project。点击完成
3 新建mydll.cpp和mydll.def两个文件
4 在mydll.def里面添加代码:
LIBRARY mydll
EXPORTS
Max @1
Min @2
5 在mydll.cpp里面添加代码:
int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}
int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
6 生成dll
7 把生成的 .lib文件拷贝到另一个工程(要调用的DLL项目)的目录下,把.dll文件拷贝到另一个工程(要调用的DLL项目)的debug目录下
8 另一个项目的调用代码如下:
.h
__declspec(dllimport) int Max(int a,int b);
__declspec(dllimport) int Min(int a,int b);
.cpp
#include <stdio.h>
#include "dllcall.h"
int main()
{
int a;
a = Max(8,10);
printf("比较的结果为%d ",a);
return 0;
}
9..然后配置工程属性
.dll所在的文件夹
![](http://hi.csdn.net/attachment/201201/8/0_13260243712KQJ.gif)
包含关系
使用 DEF 文件从 DLL 导出:http://msdn.microsoft.com/zh-cn/library/d91k01sh(VS.80).aspx
三、
隐式调用就把dll拷到项目文件夹下,把dll相应的头文件加进项目就好了;显式调用是同过LoadLibrary函数加载dll,通过GetProcAddress得到想调用的函数的地址然后作一个牵制转换后就可以调用了。即:隐式调用(通过lib和头文件)和显式调用(只通过提供的dll文件)。
http://www.cppblog.com/richardhe/articles/57428.html