标签存档: .NET

编写 .NET 与非托管资源互操作的绑定代码

TL;DR

建议使用 ClangSharpPInvokeGenerator 生成 P/Invoke 绑定代码。在需要人工介入的情况下可以参照本文前半部分介绍绑定技巧的部分进行修改。生成绑定后仍然建议对其二次封装使之更符合 .NET 的使用习惯。

展示

我在 OptimeGBA.io 中手写了 libvpx 的绑定,而用 ClangSharpPInvokeGenerator 生成了 libopenh264 的绑定,供各位对比绑定生成的质量。此外,这两个库的二次封装也可作为案例参考如何将 .NET 与非托管资源的互操作体验更加原生。

运行效果可以在此体验:https://aws.martincl2.me/OptimeGBA.io/。部署的版本使用了 h264 编码。

继续阅读 »

Amazon Linux 编译安装 mono 并后台运行 ASP.NET5 应用(supervisor)

目前 ASP.NET5 环境仅对 Ubuntu 支持得比较好,而使用 yum 的几个 Linux 则需要花一些时间去安装了(理论上讲 mono 提供了 yum 的包,但实际安装的时候报缺少 libpng15.so,并没有找到任何方法修复). OS X 和 Windows 当然是一路绿灯并没有什么问题. 不巧的是我的 Amazon EC2 跑的是 Amazon Linux,折腾了一个礼拜才最终搞定.

首先当然是安装 mono. 安装过程可以参考 mono 官方的教程. (需要先安装 git 和 make)

注意:编译安装 mono 需要花费较长的时间.

继续阅读 »