小编h4x*_*x0r的帖子

C将参数作为void-pointer-list传递给LoadLibrary()中的导入函数

我的问题是我想创建一个通用命令行应用程序,可用于加载库DLL,然后调用库DLL中的函数.函数名称在命令行中指定,参数也在实用程序命令行中提供.

我可以从使用该LoadLibrary()函数动态加载的DLL访问外部函数.一旦加载了库,我就可以获得一个指向函数的指针,GetProcAddress()我希望用命令行中指定的参数调用该函数.

我可以将一个void-pointer-list传递给函数指针,该函数指针是由LoadLibrary()类似下面示例的函数返回的?

为了简化示例代码,我删除了错误检查.有没有办法让这样的工作:

    //Somewhere in another dll
    int DoStuff(int a, int b)
    {
        return a + b;
    }
    int main(int argc, char **argv)
    {
        void *retval;
        void *list = argv[3];
        HMODULE dll;
        void* (*generic_function)(void*);

        dll = LoadLibraryA(argv[1]);

        //argv[2] = "DoStuff"
        generic_function = GetProcAddress(dll, argv[2]);

        //argv[3] = 4, argv[4] = 7, argv[5] = NULL
        retval = generic_function(list);
    }

如果我忘记提及必要的信息,请告诉我.提前致谢

c c++ winapi pointers function-pointers

6
推荐指数
1
解决办法
1294
查看次数

标签 统计

c ×1

c++ ×1

function-pointers ×1

pointers ×1

winapi ×1