【发布时间】:2014-01-27 13:15:09
【问题描述】:
我知道 C# 允许使用 PInvoke (An Overview of Managed/Unmanaged Code Interoperability) 与本机代码进行互操作
我们正计划开发新代码,并正在考虑 2 个选项:
- 本机解决方案 + 托管 (C#) 包装器围绕调用本机代码的互操作代码。
- 完全托管的解决方案
我想知道这个互操作是否有任何记录在案的限制? (例如 - 某些类型不能在托管/本机之间来回编组等)
这些限制可能会影响我们决定使用(或不使用)选项 #1。
【问题讨论】:
-
在您的上下文中什么是原生解决方案?如果您可以使用托管代码来做到这一点,您为什么要考虑替代方案?
-
我可能会采用原生的低层,并在其他一些仅原生的平台上使用它。
-
假设您可以部署这样的解决方案,则选项 1 没有限制。
标签: c# .net interop pinvoke native