Hoe C # naar C++ converteren

Kan iemand me helpen om C # naar C++ te converteren? Hier is een voorbeeld:

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]);
            }
        }
    }
}

Eigenlijk als het gecompliceerd is om C # en C++ op Unix te mixen, probeer ik C # naar C++

te converteren


Antwoord 1, Autoriteit 100%

Eigenlijk als het gecompliceerd is om C # en C++ op Unix te mixen, probeer ik C # naar C++

te converteren

Heb je Monooverwogen? Het is zeker de moeite waard om te controleren voordat u C++ gaat leren om een bestaande .NET-toepassing op Unix te converteren en uit te voeren. Het is ook binair compatibel, wat betekent dat je niet eens je bestaande assembly opnieuw hoeft te compileren.


Antwoord 2, autoriteit 42%

Leer C#, leer C++ en besteed veel tijd aan herschrijven.

Of gebruik PInvokevan de C#-assembly om een C++ aan te roepen dll.

Of schrijf beheerde C++ en compileer met de /clr schakelaar. De resulterende assembly kan worden geraadpleegd en gebruikt vanuit C#-projecten.


Antwoord 3, autoriteit 33%

Het is bijna onmogelijk om C# rechtstreeks naar C++ te vertalen, zodat het op Unix-machines draait.

Dit is voornamelijk te wijten aan het feit dat het .NET Framework niet beschikbaar is (vanaf C++) op Unix-machines. Mono stelt je in staat om veel C#/.NET-programma’s uit te voeren, maar ondersteunt geen C++/CLI (de C++-extensies waarmee je direct met het .NET Framework kunt werken).

Het converteren van de taal is mogelijk – hoewel moeilijk vanwege verschillen in aanpak (bijv. garbage collection in C#), maar de framework-aanroepen moeten worden overgedragen naar verschillende bibliotheken, en het is vaak geen goede kandidaat voor een directe vertaling.

In je bovenstaande code zou je bijvoorbeeld moeten beslissen over een C++-bibliotheek voor webtoegang – en als je die keuze eenmaal had gemaakt, zou het de code dicteren die nodig is om die bibliotheek aan te roepen om de website-string te downloaden.


Antwoord 4, autoriteit 21%

Ik gebruik van tijd tot tijd C# naar C++ converter. Het is echt geweldig voor het converteren van fragmenten van c# naar c++ of c++/cli.


Antwoord 5, autoriteit 17%

Overweeg om naar Vala te kijken. Vala is een C#-achtige taal die wordt omgezet in C en vervolgens in een uitvoerbaar bestand. Er zijn weinig verschillen met C#. Je zult echter nog steeds je hersens moeten gebruiken.


Antwoord 6, autoriteit 17%

Misschien kunt u CoreRT overwegen. Het is een .NET-project waarvan het doel is om de noodzaak voor de CLR om aanwezig te zijn op het doelplatform voor het uitvoeren van een applicatie te elimineren. In plaats daarvan genereert het C++-code van een bepaalde C#-code. Die C++-code is gecompileerd en gekoppeld op elk doelplatform dat C++ ondersteunt.

Een bericht op een Microsoft-blog zei: “Als ik echt wat C#-code wil schrijven en het ‘gewoon wil laten werken’ op een nieuw IoT-apparaat, heb ik geen opties totdat de RyuJIT machinecode kan genereren dat werkt met die processor en dat besturingssysteem.” Door C# naar C++ te compileren, kunnen .Net-ontwikkelaars hun applicaties leveren zonder te hoeven wachten tot .Net op een bepaald platform is geïmplementeerd.

https://github.com/dotnet/corert


Antwoord 7, autoriteit 12%

Bewerken:
De vermelde site is stopgezet. Ik zal het oude antwoord hier achterlaten ter referentie …

Oud antwoord:
Hier is een online converter die het proces voor je automatiseert! …

Varycode online converter

Het kan C# naar C++ en weer terug doen, evenals converters voor Ruby, Python, Java & VB, blijkbaar!

Bewerken:
Het lijkt erop dat de C++- (en java)-functionaliteit is verwijderd – er staat tijdelijk, maar dat is al heel lang zo. Hopelijk brengen ze het snel weer tot leven!
Werkt nog steeds voor sommige andere talen (VB, Ruby, Python, Boo).


Antwoord 8, autoriteit 8%

Zoals hier al vermeld, kan de vertaling van bibliotheken een probleem zijn, maar een open source-project dat in sommige gevallen kan helpen, is:

http://alexalbala.github.io/Alter-Native/

Citaat van de hoofdpagina:

Het biedt een hulpmiddel om applicaties gemakkelijk over te zetten
van talen op hoog niveau zoals .NET naar
moedertalen zoals C++. Het is een onderzoeksproject
en het is in ontwikkeling met de
samenwerking van UPC – BarcelonaTech en AlterAid S.L.


Antwoord 9, autoriteit 4%

Hier is de website waar u de C# naar C++-converter kunt vinden.

https://github.com/ASDAlexander77/cs2cpp

Je hoeft alleen maar enkele stappen uit te voeren om C++-code te genereren en te compileren vanuit C#. Bovendien converteert deze applicatie C#-code naar C++ die platformonafhankelijk compatibel is.

Other episodes