C#的相关学习简介

C#的相关学习简介C#调用C++接口swig简介编写接口定义文件生成中间层代码C#端测试工程的生成ARM .net runtime安装ubuntu 18.04 .net 安装

C#调用C++接口

以License SDK为例,介绍C#如何调用C++接口。

swig简介

swig是个帮助将c、c++编写的程序与其他高级语言嵌入联接的开发工具。例如PHP、python、lua、c#、java等。 swig常将c、c++和其他语言进行API的相互转换。swig还应用于创建高级语言解析或汇编程序环境,用户接口,作为一种用来测试C/C++或进行原型设计的工具。

编写接口定义文件

接口定义文件 license.i

%module LicenseAPI
 
%{
    #include "zy_license_manager.h"
%}
 
%include "zy_license_manager.h"

生成中间层代码

命令行生成中间层代码:

swig -c++ -csharp ../src/license.i 

最后会生成两组文件:C++端是license_wrap.cxx,C#端是LicenseAPI.csLicenseAPIPINVOKE.csS_ZYLicenseRemainC.cs

将生成的license_wrap.cxx和原来的C++源码一起编译生成动态库文件,供应用程序运行时调用。

C#端测试工程的生成

dotnet new console -o myApp    //参考连接:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/create
//编译命令
dotnet publish -r linux-arm -c Release --self-contained false -o facial-server

ARM .net runtime安装

下载 dotnet-sdk-5.0.302-linux-arm.tar.gz并上传到RkPad,解压到/userdata/app/opt/dotnet5.0.301目录

设置环境变量,其中APP_ROOT 是指 /userdata/app

export DOTNET_ROOT=$APP_ROOT/opt/dotnet5.0.301
export PATH=$PATH:$DOTNET_ROOT
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1

DOTNET_SKIP_FIRST_TIME_EXPERIENCE是为了避免首次运行.net去做其它额外操作导致引起磁盘空间不足的问题 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT是为了避免多语言环境配置导致的bug

ubuntu 18.04 .net 安装

请参考此链接 Install .NET on Ubuntu - .NET | Microsoft Docs

使用 APT 安装可以通过几个命令来完成。在安装 .NET 之前,运行以下命令将 Microsoft 包签名密钥添加到您的受信任密钥列表并添加包存储库。
​
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
安装 SDK
.NET SDK 允许您使用 .NET 开发应用程序。如果安装.NET SDK,则不需要安装相应的运行库。要安装 .NET SDK,请运行以下命令:
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-5.0
 重要的
​
如果您收到类似于Unable to locate package dotnet-sdk-5.0的错误消息,请参阅APT 故障排除部分。
​
安装运行时
ASP.NET Core 运行时允许您运行使用 .NET 制作但不提供运行时的应用程序。以下命令安装 ASP.NET Core 运行时,它是 .NET 最兼容的运行时。在您的终端中,运行以下命令:
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-5.0
​
如果您收到类似于Unable to locate package aspnetcore-runtime-5.0的错误消息,请参阅APT 故障排除部分。
​
作为 ASP.NET Core 运行时的替代方案,您可以安装 .NET 运行时,它不包括 ASP.NET Core 支持:将aspnetcore-runtime-5.0上一个命令中的替换为dotnet-runtime-5.0:
​
sudo apt-get install -y dotnet-runtime-5.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值