繁体   English   中英

动态调用WinRT接口

[英]Dynamic calls to WinRT interfaces

我想从C或C ++对WinRT对象进行动态(即基于反射)调用。 我将假设我在运行时可以获得winmd文件,以便我可以找出方法是什么以及它们采用了什么参数。

在OLE自动化中,IDispatch随后可用于进行实际调用。 但是,WinRT对象不支持IDispatch。 我怎么才能打电话? 根据处理器的COM调用约定,我是否需要某种允许动态传递参数的FFI库? 或者我真的需要“静态”类/结构声明(对于C / C ++)?

编辑 :目标系统是一个地铁风格的应用程序。 这排除了涉及禁用API的解决方案。

当然可以构建您正在描述的内容 - 这正是Chakra Javascript引擎与winrt元数据完全相同的内容,与CLR的功能类似。 这两种语言预测都会在运行时发现API并构建低级程序集以实现此目的。

这是一项很多工作,并不是特别令人愉快,但它在技术上绝对可行。 Windows元数据包含为API和结构创建存根所需的所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM