Linux下为什么用不了C#

  Linux下为什么用不了C# 

   其实这个标题是有问题的,因为,目前在Linux下是可以借助一些开源框架(比如Mono,Mono就是非官方的.NET Frameworker)使用C#,但并不推荐这么做,在Linux下,Java才是程序员的首选,当然,你写C也是可以的,Python也不错微笑

我们都知道C#的运行必须基于.NET Frameworker平台,因为.Net Framework是微软的.NET应用程序开发和运行环境,离开.Net Framework,一切都无从谈起。  

现在我们就说“Linux下为什么用不了C#”,其实这个问题很简单也很复杂。说简单是因为,只要微软开发出一套Linux版的.NET Frameworker就可以让C#顺利而又流畅的运行于Linux,也可以向Java那样做到“一次编程,到处运行”。相信开发一套Linux版的.NET Frameworker对于微软来说是一个很简单的事情。但问题就是,微软并不这么做。这也就是我说复杂的原因。为什么?

因为微软是闭源的,是反Linux的,因为开源和Linux这两个词已经让微软变得暴躁和不安。各位有见过微软为Linux开发的office么?一旦微软为Linux开发.NET Frameworker,那么也就意味着微软也加入了开源组织,也要公开其源代码,你想,这个可能么?这可是丢饭碗的事啊!所以说很复杂。

呵呵,要说的就这么多,对于以上内容,如有不妥,敬请赐教!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux使用 Qt 调用 C# 动态库,需要使用 Mono 框架,因为 Mono 提供了 .NET Framework 的实现,可以在 Linux 下运行 .NET 程序,包括 C# 程序。 以下是使用 Qt 调用 C# 动态库的基本步骤: 1. 安装 Mono 开发环境。可以使用包管理器安装,例如在 Ubuntu 上执行以下命令: ``` sudo apt-get install mono-devel ``` 2. 编写 C# 动态库。可以使用 Visual Studio 进行开发,也可以使用 MonoDevelop 等工具。编写完毕后,需要将 C# 动态库编译为 .dll 文件。 3. 在 Qt 项目中添加对 Mono 的引用。在 Qt 项目的 .pro 文件中添加以下内容: ``` LIBS += -r:System ``` 4. 在 Qt 项目中调用 C# 动态库。可以使用 QProcess 或者 QLibrary 类来调用 C# 动态库。 - 使用 QProcess: ```cpp QProcess process; process.start("mono", QStringList() << "CSharpLibrary.dll" << "arg1" << "arg2"); process.waitForFinished(); QByteArray output = process.readAllStandardOutput(); ``` 这里的 "CSharpLibrary.dll" 是 C# 动态库的文件名,"arg1" 和 "arg2" 是传递给 C# 动态库的参数。 - 使用 QLibrary: ```cpp QLibrary library("CSharpLibrary.dll"); library.load(); typedef int (*FuncType)(int, int); // 定义 C# 动态库中的函数类型 FuncType func = (FuncType)library.resolve("Add"); // 获取 C# 动态库中的函数地址 int result = func(1, 2); // 调用 C# 动态库中的函数 ``` 这里的 "Add" 是 C# 动态库中的函数名,可以根据需要修改。 注意事项: - C# 动态库必须是 .NET Framework 2.0 或者更高版本编译的。 - C# 动态库中的函数必须使用“C”调用约定,例如可以使用 [DllImport] 标记来指定调用约定。 - C# 动态库中的函数参数类型和返回值类型必须与 Qt 中使用的类型相兼容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值