1 一个简单的DLL 第2 节给出了以静态链接库方式提供add 函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add 函数
如图6,在VC++中new 一个Win32 Dynamic-Link Library 工程dllTest(单击此处下载本工程附件)
注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6 节要讲述的MFC 动态链接库
图6 建立一个非 MFC DLL 在建立的工程中添加 lib
h 及 lib
cpp 文件,源代码如下: /* 文件名:lib
h */ #ifndef LIB_H #define LIB_H extern "C" int __declspec(dllexport)add(int x, int y); #endif /* 文件名:lib
cpp */ #include "lib
h" int add(int x, int y) { return x + y; } 与第2节对静态链接库的调用相似,我们也建立一个与 DLL工程处于同一工作区的应用工程dllCall,它调用DLL中的函数add,其源代码如下: #include #include typedef int(*lpAddFun)(int, int); //宏定义函数指针类型 int main(int argc, char *argv[]) { HINSTANCE hDll; //DLL句柄 lpAddFun addFun; //函数指针 hDll = LoadLibrary("
\\Debug\\dllTest
dll"); if (hDll
= NULL) { addFun = (lpAddFun)GetProcAddress(hDll, "add"); if (addFun
= NULL)