创造DLL:
1) 建立带有输出原型/结构/符号的头文件。
#define MYLIBAPI extern "C" __declspec(dllimport)
2.1) 建立实现输出函数/变量的C/C++源文件。
CPP文件头必须如下顺序:
#include <windows.h>
#define MYLIBAPI extern "C" __declspec(dllexport)
#include "MyLib.h"
2.2)添加定义DLL文件名及输出函数及变量名的.def文件
//DLL01.def (与Cpp文件放一个工程目录下)
LIBRARY "DLL01.dll"
EXPORTS
Add DATA
nResult DATA
//end file
3) 编译器为每个C/C++源文件生成.obj模块。
4) 链接程序将生成DLL的.obj模块链接起来。
5) 如果至少输出一个函数/变量,那么链接程序也生成.lib 文件。
创造EXE:
6) 建立带有输入原型/结构/符号的头文件。
把步骤1 )里的MyLib.h文件,原样的复制到应用程序源代码的文件夹。
复制DLL01.dll和DLL01.lib到.exe文件夹下。
7) 建立使用输入函数/变量的C/C++源文件。
文件头必须是
#include <windows.h>
#include "MyLib.h"
#pragma comment ( lib, "Debug/DLL01.lib")
8) 编译器为每个C/C++源文件生成.obj源文件。
9) 链接程序将各个.obj模块链接起来,生成.exe文件。
运行应用程序:
10) 加载程序为.exe 创建模块地址空进程的主线程开始执行;
应用程序启动运行。
以上为VC6.0隐式加载DLL成功步骤,哈哈。
显式加载DLL:
11) 一个线程调用LoadLibrary (Ex)函数,将DLL加载到进程
的地址空间这时线程可以调用GetProcAddress以便间接
引用DLL的输出符号。