有人可以帮助我将C#转换为C ++吗?这是一个例子:
using System;
using System.Net;
using System.Text;
using System.IO;
using System.Threading;
namespace read_website
{
class Program
{
static void Main(string[] args)
{
while (true)
{
DownloadString("http://www.xxx.asp");
Thread.Sleep(100);//update every 100 millisecoand
}
}
public static void DownloadString(string address)
{
WebClient client = new WebClient();
string website = client.DownloadString(address);
get_Current_X1_value(website);
}
static void get_Current_X1_value(string web)
{
int x = web.IndexOf("Current X1 value:");
string part1 = web.Substring(x, 100);
string[] array = part1.Split('>', '<');
for (int i = 0; i < array.Length; i++)
{
if (array[i].Contains("Current X1 value:"))
Console.Write(array[i]);
if (array[i].Contains("W"))
Console.WriteLine(array[i]);
}
}
}
}
实际上因为在unix上混合使用C#和C ++很复杂,我试图将C#转换为C ++ 所以,任何帮助将非常感激
提前感谢您的回复,帮助和时间,
答案 0 :(得分:22)
实际上因为在unix上混合使用C#和C ++很复杂,我试图将C#转换为C ++
您考虑过Mono了吗?在开始学习C ++之前,为了在Unix上转换和运行现有的.NET应用程序,这是值得检查的。它也是二进制兼容的,这意味着您甚至不需要重新编译现有的程序集。
答案 1 :(得分:8)
几乎不可能直接将C#转换为C ++,以便它可以在Unix机器上运行。
这主要是因为Unix机器上的.NET Framework不可用(来自C ++)。 Mono将允许您运行许多C#/ .NET程序,但不支持C ++ / CLI(允许直接使用.NET Framework的C ++扩展)。
转换语言是可能的 - 尽管由于方法上的差异很困难(例如,C#中的垃圾收集),但框架调用将需要移植到不同的库,并且它通常不是直接翻译的良好候选者。 / p>
例如,在上面的代码中,您必须决定用于Web访问的C ++库 - 一旦您做出了这样的选择,它将决定调用该库来下载网站字符串所需的代码。
答案 2 :(得分:8)
学习C#,学习C ++,并花大量时间重写。
或者使用C#程序集中的PInvoke来调用C ++ DLL。
或写managed C++ and compile with the /clr switch。可以从C#项目中引用和使用生成的程序集。
答案 3 :(得分:4)
考虑一下Vala。 Vala是一种类似C#的语言,可以转换为C,然后转换为可执行文件。与C#几乎没有什么区别。你仍然需要使用你的大脑。
答案 4 :(得分:3)
修改强>
列出的网站已经停产。我会在这里留下旧答案以供参考......
旧答案:
这是一个在线转换器,将为您自动化过程! ...
它可以做C#到C ++,然后再回来,以及Ruby,Python,Java和Linux的转换器。 VB,显然!
修改强>
它似乎已经删除了它的C ++(和java)功能 - 它暂时说,但现在已经这样做了很长时间。希望他们很快就会复活!
仍适用于其他一些语言(VB,Ruby,Python,Boo)。
答案 5 :(得分:2)
您可能需要考虑CoreRT。它是一个.NET项目,其目标是消除CLR在目标平台上运行应用程序的需要。相反,它从给定的C#代码生成C ++代码。该C ++代码在任何支持C ++的目标平台上编译和链接。
微软博客上的帖子说:&#34;如果我真的想写一些C#代码,并且让它“正常工作”。在新的物联网设备上,我没有任何选择,直到RyuJIT能够生成与该处理器和操作系统一起使用的机器代码。&#34;通过将C#交叉编译为C ++,.Net开发人员可以提供他们的应用程序,而无需等待.Net在给定平台上部署。
答案 6 :(得分:1)
以下是您可以找到C#转换为C ++转换器的网站。
https://github.com/ASDAlexander77/cs2cpp
您只需执行一些步骤即可从C#生成和编译C ++代码。此外,该应用程序将C#代码转换为跨平台兼容的C ++。
答案 7 :(得分:0)
正如这里已经提到的,库的翻译可能是一个问题,但是在某些情况下可能会有所帮助的一个开源项目是:
http://alexalbala.github.io/Alter-Native/
主页上的引文:
它提供了方便移植应用程序的工具 从.NET等高级语言到 本地语言(如C ++)。这是一个研究项目 它正在与 UPC的合作-BarcelonaTech和AlterAid S.L。
答案 8 :(得分:-6)
static void Main(string[] args)
{
int t = int.Parse(Console.ReadLine());
for (int i = 0; i < t; i++)
{
string []a = Console.ReadLine().Split();
string[] b = Console.ReadLine().Split();
int n = int.Parse(a[0]);
int k = int.Parse(a[1]);
int c = int.MinValue;
for (int l = 0; k<=n; l++)
{
for (int j = l; j < k; j++)
{
if (int.Parse(b[j]) > c)
c = int.Parse(b[j]);
}
k++;
Console.Write(c);
c = int.MinValue;
}
}