编写dll对已有dll进行二次封装

问题描述:在别的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与可执行文件放在一起。

你可能感兴趣的:(编写dll对已有dll进行二次封装)