蔡諝的窝

博客园 首页 新随笔 联系 订阅 管理

直接给出步骤:

===========函数的DLL封装===========

1.创建第一个项目:win32控制台程序,应用程序类型:DLL,附加选项:导出符号(命名:double_dll)

2.double_dll.h中加入函数定义
   extern DOUBLE_DLL_API int doublefun(int);//DOUBLE_DLL_API 根据项目名称不同而不同

3.double_dll.cpp加入函数实现
 extern DOUBLE_DLL_API int doublefun(int x)//DOUBLE_DLL_API 根据项目名称不同而不同
 {
  return 2*x;
 }

4.编译(产生的将是dll、lib文件,不是应用程序)

注:如果用Dependency Walker可以在编译后生成的double_dll.dll中看到int doublefun(int),那么说明我们已经把函数doublefun封装进dll,剩下的就是阐述如何在另外一个项目中调用这个dll文件中的函数。

===========调用DLL文件中的函数===========

1.创建第二个项目:普通的win32空项目(命名:call_doublefun)

2.把第一个项目编译后产生的.h放入与第二个项目的.cpp文件同一目录(方便include)

3.把第一个项目编译后产生的.dll和.lib放入第二个项目的Debug(就是应用程序的出生地)

4.设置:链接器-常规-附加库目录XXX\Projects\call_doublefun\Debug(这里的“XXX”所指代的大家都明白的)

5.设置:链接器-输入-附加依赖项double_dll.lib

6.在第二个项目的cpp文件的合适位置加入两句话

   第一句#include "double_dll.h"
   第二句extern _declspec(dllimport) int doublefun(int); 

举例:

#include <iostream>
#include "double_dll.h"
using namespace std;
extern _declspec(dllimport) int doublefun(int); 
void main()
{
 int x=0;
 cout<<"Please input X:";
 cin>>x;
 cout<<"2*X=";
 cout<<doublefun(x)<<endl;
}

参考:http://www.php18.com/tutorial-3150.html

posted on 2011-01-08 22:21  蔡諝  阅读(1696)  评论(0编辑  收藏  举报