在运行时我提供了一个String
名称、对象的排序数组以及有关本机函数的一些附加信息(dllpath、calltype 等)。
假设所有信息都在CallInformation
Object.
我如何调用这个本机函数?
笔记:
- 在运行之前我没有提供 dll。
- 在运行之前我没有收到呼叫信息。
- 我不知道运行前调用参数的数量或类型。
- 我不知道运行前的返回类型。
The 网络上的常用信息 http://www.codeproject.com/Articles/27298/Dynamic-Invoke-C-DLL-function-in-C关于调用本机函数涉及调用
- 已知 dll 中的已知函数类型
- 未知 dll 中的已知函数类型
我需要的是
解决方案将涉及 Reflection.Emit。您必须根据 CallInformation 动态生成一个包含 PInvoke 签名的类,该签名用适当的 DllImport 属性修饰。
抱歉,没有代码,但考虑到冗长的 Reflection.Emit API,它无法归结为值得发布的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)