我想从 C 或 C++ 对 WinRT 对象进行动态(即基于反射)调用。我将假设我在运行时有可用的 winmd 文件,这样我就可以找出方法是什么以及它们采用什么参数。
在 OLE 自动化中,IDispatch 可用于进行实际调用。但是,WinRT 对象不支持 IDispatch。那我怎么打电话?根据处理器的 COM 调用约定,我是否需要某种允许动态传递参数的 FFI 库?还是我真的需要“静态”类/结构声明(对于 C/C++)?
编辑:目标系统是一个地铁风格的应用程序。这排除了涉及被禁止 API 的解决方案。