VC++动态链接库(DLL)
来源:百度文库 编辑:神马文学网 时间:2024/06/30 21:33:19
4.非MFC DLL
4.1一个简单的DLL
第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。
如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC 动态链接库。
#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)
{
int result = addFun(2, 3);
printf("%d", result);
}
FreeLibrary(hDll);
}
return 0;
}
4.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
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)
{
int result = addFun(2, 3);
printf("%d", result);
}
FreeLibrary(hDll);
}
return 0;
}
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
VC++动态链接库(DLL)
VC 动态链接库(DLL)编程深入浅出
VC++动态链接库(DLL)编程深入浅出
VC++动态链接库(DLL)编程-1
VC实现串行通信的动态链接库(DLL)
VC++动态链接库(DLL)编程深入浅出(二)
VC 动态链接库(DLL)编程深入浅出111
VC++动态链接库编程之DLL典型实例111
VC++动态链接库编程之DLL典型实例001
VC++动态链接库(DLL)编程深入浅出(一)
VC++动态链接库(DLL)编程深入浅出(二)
VC实现串行通信的动态链接库(DLL)A
VC 动态链接库(DLL)编程深入浅出-1
如何用VC编写DLL动态链接库文件0
VC++动态链接库(DLL)编程深入浅出(一)
VC++动态链接库(DLL)编程深入浅出(二)
VC++动态链接库编程之DLL木马·科技频道·科技创造财富
动态链接库文件与dll是什么意思?
C语言调用Dll动态链接库
VC++动态链接库编程[分享]
动态链接库在VC调用
我的Dll(动态链接库)学习笔记
【C++】编写动态链接库(DLL) __stdcall_【wjxgzz的博客】
静态链接库LIB和动态链接库DLL的区别 创建和示例