我们假设我有以下功能:
int func(int a, char* b, float c)
{
return 42;
}
如果有可能在没有:
的情况下调用此函数,我很好奇func(1, "abc", 2.4)
)该函数是用C(或C ++)编写的,可能位于库(Windows上的DLL)或当前应用程序中编译的某个位置。现在让我们假设没有名称错位问题。
但是,我知道以下内容:
int
”,“char*
”,“float
”。我对任何建议持开放态度,但我有点害怕某些较低级别的装配黑客,因为我希望它尽可能便携。
我更喜欢C
解决方案,我想避免boost::bind
......
修改 - 一些澄清......
“调用”“函数”是脚本语言的编译库(DLL)。它加载脚本语言(源文件),它具有“绑定”到外部“函数”(我试图调用的那些),当它在脚本语言中遇到“调用这个外部函数”时,它试图调用那个外部函数可能在DLL ...或实际加载脚本语言的DLL的应用程序...
答案 0 :(得分:0)
为了能够调用参数类型在编译时不明确的函数,我担心你不会说“低级程序集黑客”。
如果x86或AMD64以外的体系结构的可移植性不相关,请查看at this wonderful library。它允许在运行时以特定于操作系统的非特定方式生成本机字节码,这应该是满足您愿望的最简单方法。
它仍处于测试阶段,但我现在已经使用了一段时间而没有遇到任何问题。