以PMAC为例说明动态库的调用方法
1、使用函数指针
1.1、在头文件中定义函数指针类型及动态库加载、卸载函数,同时将函数指针声明为外部变量,形如:
//文件名 “PmacRuntime.h”
//函数指针类型定义
typedef int (CALLBACK *pOpenPmacDevice)(DWORD dwDevID);
//动态库加载卸载函数定义
HINSTANCE PmacRuntimeLink();
void PmacRuntimeClose();
//函数指针声明
extern pOpenPmacDevice PmacDevOpen;
1.2、在源文件中定义函数指针,实现动态库加载、卸载函数,形如:
//文件名 “PmacRuntime.c”
#include “PmacRuntime.h”
//函数指针声明
pOpenPmacDevice PmacDevOpen;
//动态库加载
#define DLL_LINK(FunForUse, Funtype, hinsLib, FunNameInDll) \
FunForUse=(Funtype)GetProcAddress(hinsLib,FunNameInDll); \
if (FunForUse == NULL) break
HINSTANCE PmacRuntimeLink()
{
int nDllIm = 0;
//加载动态库
HINSTANCE hPmacLib;
hPmacLib = LoadLibrary(PMAC_DLL_NAME);
//导出动态库函数
for (i