【发布时间】:2015-06-22 11:19:32
【问题描述】:
我正在尝试使用 Swig 将我的 c++ 代码包装到 c#。如果 C# 文件的输出目标是类库,则没有错误并成功构建。
但是我想同时支持 windows phone 8.1 和 windows 8.1,因为这个原因我使用的是可移植类库而不是普通类库。在这种情况下,我收到错误消息;
命名空间“System.Runtime.InteropServices”中不存在类型或命名空间名称“HandleRef”(您是否缺少程序集引用?)
我真的不知道我错过了什么。这个问题的解决方案是什么? 我猜 windows phone 8.1 和 windows 8.1 不支持 HandleRef 但我不确定。如果是这样,我该怎么办?
【问题讨论】:
-
HandleRef 在 PCL 中不受支持(您可以从 MSDN 检查)。您可以将其替换为 IntPtr(假设您需要它),但在这种情况下,您必须自己小心避免 GC 问题(处理 GCed 的对象,因为不在使用)。
-
@AdrianoRepetti 如果我需要用 IntPtr 替换 HandleRef ,我该怎么做? Swig 自动使用 HandleRef,但我看不到任何示例/指南来告诉我如何更改它。
-
可能相当复杂...在 Swig 的
Lib\csharp\*中有 61 个 HandleRef 引用...
标签: c# .net windows-phone-8.1 swig portable-class-library