【问题标题】:Calling any dll function based on variable arguments基于可变参数调用任何 dll 函数
【发布时间】:2010-01-21 05:03:23
【问题描述】:

我在一个结构中有以下项目:
- Dll 名称(绝对/相对路径)
- dll中的函数名称
- 参数数量
- 参数类型和值的数组

有了这些信息,我需要加载 dll 并调用函数。
要加载 dll,我会使用 LoadLibrary。
要获取函数的地址,我会使用 GetProcAddress。
调用函数。
要卸载 dll,请使用 FreeLibrary

由于函数的参数数量是动态的,我不确定如何将参数传递给函数。

谁能提供一些关于如何将参数传递给 dll 函数的详细信息?

感谢和问候, V卡西克

【问题讨论】:

    标签: dll function dynamic loadlibrary getprocaddress


    【解决方案1】:

    是否可以将字典对象(带有参数的对象)传递给某个包装函数并让该包装函数调用实际函数?它可能会为您省去很多麻烦,并且您可能会使用预处理器为您生成包装函数。

    【讨论】:

    • 我不确定包装函数将如何调用最终的 dll。可能的组合将是巨大的 - 考虑到最多 10 个参数和参数类型是 int、float 和 string。
    • 这个想法是在 DLL 本身中编写包装函数。这样,包装器就会知道字典中的内容并知道如何分配它们。
    • 我也遇到了同样的问题。但是,问题在于 dll 是完全任意的。我想要一些适用于所有 dll 的东西——我制作的和不制作的……我认为这也是 @Karthick 的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2011-10-12
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多