11.2.2 VC++ 6.0开发DLL实例

2013-10-07 14:33:37 · 作者: · 浏览: 114

11.2.2  VC++(www.cppentry.com) 6.0开发DLL实例

本节将以VC++(www.cppentry.com) 6.0开发一个输出Hello world函数,及一个Add函数的DLL为例,讲解VC++(www.cppentry.com) 6.0开发DLL的一般方法。

(1)新建一个Win32 Dynamic-Link Library工程DLLTest。注意不要选择MFC AppWizard(dll),如图11.10所示。

(2)选择一个空的DLL,如图11.11所示。

 
图11.10  创建一个DLL工程
 
图11.11  创建一个空的DLL工程
(3)单击"完成"按钮后便创建了一个空的DLL工程。为工程添加一个头文件,内容如下:
  1. #ifndef DLLTEST_H  
  2. #define DLLTEST_H  
  3. void say();  
  4. int add(int x, int y);  
  5. #endif  

这个头文件向外部提供了say()函数及add()函数的接口。

(4)为工程添加一个CPP文件,内容如下:

  1. 01  #include <stdio.h> 
  2. 02  #include "dlltest.h"  
  3. 03  int add(int x, int y)  
  4. 04  {  
  5. 05      return x + y;                   //返回两个参数的和  
  6. 06  }  
  7. 07  void say()  
  8. 08  {  
  9. 09      printf("Hello world\n");        //输出信息  
  10. 10  }  

在CPP文件中提供了say()函数及add()函数的实现。

(5)为工程添加一个dlltest.def文件,为DLL导出函数,实现如下:

  1. EXPORTS  
  2. say     @1  
  3. add     @2  

(6)编译后便可得到dlltest.lib及dlltest.dll两个文件。创建一个控制台应用程序test检验DLL,如图11.12所示。

(7)然后选择一个空的工程,为工程添加一个test.cpp文件,内容如下:

  1. 01  #include <stdio.h> 
  2. 02  #include "dlltest.h"  
  3. 03  #pragma comment(lib, "DllTest.lib")  
  4. 04  int main( void )  
  5. 05  {  
  6. 06      say();  
  7. 07      printf("2 + 3 = %d\n", add(2 , 3));     //调用动态库的add函数  
  8. 08      say();  
  9. 09      return 1;  
  10. 10  }  

利用隐式方式加载DLL,然后调用DLL的say()及add()函数。执行结果如图11.13 所示。

 
图11.12  创建一个空的控制台程序
 
图11.13  DLL测试结果