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工程。为工程添加一个头文件,内容如下:
- #ifndef DLLTEST_H
- #define DLLTEST_H
- void say();
- int add(int x, int y);
- #endif
这个头文件向外部提供了say()函数及add()函数的接口。
(4)为工程添加一个CPP文件,内容如下:
- 01 #include <stdio.h>
- 02 #include "dlltest.h"
- 03 int add(int x, int y)
- 04 {
- 05 return x + y; //返回两个参数的和
- 06 }
- 07 void say()
- 08 {
- 09 printf("Hello world\n"); //输出信息
- 10 }
在CPP文件中提供了say()函数及add()函数的实现。
(5)为工程添加一个dlltest.def文件,为DLL导出函数,实现如下:
- EXPORTS
- say @1
- add @2
(6)编译后便可得到dlltest.lib及dlltest.dll两个文件。创建一个控制台应用程序test检验DLL,如图11.12所示。
(7)然后选择一个空的工程,为工程添加一个test.cpp文件,内容如下:
- 01 #include <stdio.h>
- 02 #include "dlltest.h"
- 03 #pragma comment(lib, "DllTest.lib")
- 04 int main( void )
- 05 {
- 06 say();
- 07 printf("2 + 3 = %d\n", add(2 , 3)); //调用动态库的add函数
- 08 say();
- 09 return 1;
- 10 }
利用隐式方式加载DLL,然后调用DLL的say()及add()函数。执行结果如图11.13 所示。
|
| 图11.12 创建一个空的控制台程序 |
|
| 图11.13 DLL测试结果 |