lys*_*cid 2 .net c# pinvoke interop native
我知道C#允许使用PInvoke与本机代码进行互操作(管理/非托管代码互操作性概述)
我们正计划开发新代码,并正在考虑两个选项:
我想知道这个互操作是否有任何记录的限制?(例如 - 某些类型无法在托管/本机之间来回编组等)
这些限制可能会影响我们决定使用(或不使用)选项#1.
POD(普通旧数据)结构通常很容易编组.
但是如果你想编组包含向量之类的复杂C++类,那么你就会遇到麻烦.
如果您可以编写C/C++代码将复杂类转换为更简单的类型以通过p/invoke进行调用,那么这没关系 - 但是,否则,请远离复杂的C++类.
但是,还有另一种可能性.
您可以使用所谓的"It just works"技术使用CLI C++类包装C++代码.您可以在C++中混合使用非托管代码和CLI代码 - 即使在同一个文件中 - 这可以提供帮助.
有关详细信息,请参见此处
http://msdn.microsoft.com/en-us/library/ms173185.aspx
http://www.windowsdevcenter.com/pub/a/dotnet/2003/03/03/mcppp2.html(这是相当古老的)
http://www.codeproject.com/Articles/651516/Exposing-native-to-managed-Cplusplus-CLI-vs-P-Invo
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |