编写dll对已有dll进行二次封装
程序员文章站
2024-03-09 10:04:53
...
问题描述:在别的dll基础上开发,但是没有该dll源码。开发的输出是新的dll给别的程序调用。问题简单总结为编写dll对已有dll进行二次封装。
不解释dll是啥。简单讲一下dll的动态调用。
HINSTANCE hDllInst = LoadLibrary("XXX.dll"); // XXX为你所依赖的dll名称
if (hDllInst)
{
typedef BYTE(WINAPI *OPEN)(char*); //定义函数类型指针,这里函数类型BYTE及参数char*要根据你自己函数确定。
OPEN OpenDevice = NULL; // 给你要调用的dll中函数定义一个别名。
OpenDevice = (OPEN)GetProcAddress(hDllInst, "USBIO_OpenDeviceByNumber"); //获取函数入口地址。
if (OpenDevice)
{
if(byDevIndex = OpenDevice("BSPT002459"))
return 1;
}
}
FreeLibrary(hDllInst);
在你编写的dll中对要用到的dll进行动态调用,就起到了二次封装的效果。当然别忘了把两个dll与可执行文件放在一起。