Konvertieren Sie C# in C++

Übersetzen Sie jede C#-Bibliothek oder Konsolenanwendung auf Unternehmensebene in ihr C++-Äquivalent mit voller Unterstützung für das .NET Framework. Die resultierende C++-Bibliothek ist mit einer Vielzahl von Betriebssystemen kompatibel, darunter Linux, MacOS und Windows, so dass Ihre Anwendung auf mehreren Plattformen eingesetzt werden kann. Übersetzen Sie Millionen von Codezeilen auf einmal mit minimalem manuellem Aufwand.
Service anfordern

CodePorting.Translator Cs2Cpp ist eine Transpiler-Anwendung

Es kann verwendet werden, um eine automatische Übersetzung des sich ständig verbessernden C#-Codes in C++ einzurichten, um die gleiche Version der Software für beide Sprachen zu veröffentlichen, ohne die APIs oder die Code-Dokumentation zu ändern. Es kann auch bei der Bereitstellung von C#-Anwendungen und -Bibliotheken für Plattformen helfen, auf denen die .NET-Unterstützung entweder nicht vorhanden oder problematisch ist.

Konvertieren Sie mühelos C#-Code mit unseren leistungsstarken Funktionen

CodePorting.Translator Cs2Cpp ist eine Transpiler-App für Quellcode, die die Reproduktion interner Klassen und Routinen in der gleichen Weise ermöglicht, wie sie im ursprünglichen C#-Code implementiert sind. Außerdem können Sie nach der Übersetzung des C#-Projekts in C++ dieses für jede der unterstützten Zielplattformen erstellen.
public void EnclosedWhile(int max1, int max2)
{
	int number1 = 0;
	while (number1 < max1)
	{
		int number2 = 0;
		while (number2 < max2)
		{
			Console.WriteLine(number1 + number2);
			++number2;
		}
		++number1;
	}
}
void WhileStatements::EnclosedWhile(int32_t max1, int32_t max2)
{
	int32_t number1 = 0;
	while (number1 < max1)
	{
		int32_t number2 = 0;
		while (number2 < max2)
		{
			System::Console::WriteLine(number1 + number2);
			++number2;
		}
		++number1;
	}
}
public class ClassProperties
{
	public string PublicProperty
	{
		get { return mPublicPropertyField; }
		set { mPublicPropertyField = value; }
	}

	private string mPublicPropertyField;
}

class ClassProperties : public System::Object
{
    public:
        System::String get_PublicProperty();
        void set_PublicProperty(System::String value);

        ClassProperties();

    private:
        System::String mPublicPropertyField;
};
public void BreakEnclosedForeach(int[][] values, int max)
{
	foreach (int[] row in values)
	{
		if (row.Length == 0)
		{
			break;
		}

		foreach (int value in row)
		{
			Console.WriteLine(value);
			if (value > max)
			{
				break;
			}
		}
	}
}

void BreakStatements::BreakEnclosedForeach(System::ArrayPtr<System::ArrayPtr<int32_t>> values, int32_t max)
{
    for (System::ArrayPtr<System::ArrayPtr> row : values)
    {
        if (row->get_Length() == 0)
        {
            break;
        }

        for (int32_t value : row)
        {
            System::Console::WriteLine(value);
            if (value > max)
            {
                break;
            }
        }
    }
}
using System.Threading;

class LambdaTest
{
    public void TestMPMM_1()
    {
        var a = 0;
        new Thread(() =>
        {
            var b = a;
        });
    }
}
#include <system/threading/thread.h>
#include <system/details/lambda_capture_holder.h>
#include <functional>
#include <cstdint>

void LambdaTest::TestMPMM_1()
{
    System::Details::LambdaCaptureHolder<int32_t> _lch_a = 0;
    int32_t &a = _lch_a.GetCapture();
    System::MakeObject<System::Threading::Thread>(static_cast<System::Threading::ThreadStart>(static_cast<std::function<void()>>([_lch_a, &a]() -> void
    {
        int32_t b = a;
    })).template AddHeldVariable<System::Threading::ThreadStart>("a", a));
}
csharp converter feature
Externe Abhängigkeiten
Ersetzen Sie den manuell geschriebenen Code als Ersatz für die Abhängigkeit, die nicht für die Übersetzung verfügbar ist
csharp converter feature
API-Erhaltung
Die sprachspezifischen Konstrukte, die im C#-Code verwendet werden, werden in die am besten passenden C++-Entsprechungen übersetzt
csharp converter feature
Speichersteuerung
Kontrolle von schwachen oder gemeinsam genutzten Zeigern im übersetzten Code, um unbenutzte Objekte zu zerstören und Schleifenverweise zu unterbrechen

Bibliothek zur Übersetzerunterstützung

CodePorting.Translator Cs2Cpp ist ein Framework, das C#-Code nach C++ übersetzen kann. Der resultierende Code bietet die gleiche API wie der ursprüngliche .NET-Code und kann in der übersetzten, nicht verwalteten C++-Umgebung ausgeführt werden.

Die Übersetzerunterstützungsbibliothek ist eine C++-Bibliothek mit Ersatz für .NET-Klassen und etwas Servicecode. Der übersetzte Code ist letztendlich von dieser Komponente abhängig. Neben den .NET-Kernfunktionen unterstützt unsere Bibliothek System.Net, System.Drawing, System.XML, System.Security und andere Subsysteme. Die Übersetzerunterstützungsbibliothek wird im kompilierten Produkt enthalten sein. Wenn Sie planen, Ihren übersetzten C++-Code zu verteilen, wird empfohlen, die Abhängigkeit vom NuGet Paket der Übersetzer-Unterstützungsbibliothek einzubeziehen.
c sharp to cpp conversion scheme

Beispiele für erfolgreich nach C++ übersetzte C#-Produkte

In Verbindung stehende Artikel

Unterstützung & Lernressourcen