欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编写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与可执行文件放在一起。