Convertir C# en C++

Traduisez toute bibliothèque C# de niveau entreprise ou application console en son équivalent C++ avec un support complet pour le .NET Framework. La bibliothèque C++ résultante est compatible avec une large gamme de systèmes d'exploitation, y compris Linux, MacOS et Windows, garantissant que votre application peut être déployée sur plusieurs plateformes. Traduisez des millions de lignes de code en une seule fois avec un effort manuel minimal.
Demander un service

CodePorting.Translator Cs2Cpp est une application de transpilage

Il peut être utilisé pour mettre en place une traduction automatique du code C# en amélioration continue vers C++ afin de publier la même version du logiciel pour les deux langages sans modifier les API ou la documentation du code. Il peut également aider à fournir des applications et des bibliothèques C# sur des plates-formes sur lesquelles la prise en charge de .NET est absente ou problématique.

Convertissez sans effort le code C# grâce à nos fonctionnalités puissantes

CodePorting.Translator Cs2Cpp est une application de transpilation de code source à code source, permettant la reproduction des classes internes et des routines de la même manière qu'elles sont implémentées dans le code C# original. De plus, après la traduction du projet C# en C++, vous pouvez le construire pour n'importe laquelle des plateformes cibles prises en charge.
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
Dépendances externes
Remplacez le code écrit manuellement en remplacement de la dépendance qui n'est pas disponible pour la traduction
csharp converter feature
Préservation des API
Les constructions spécifiques au langage utilisées dans le code C# sont traduites en équivalents C++ les mieux adaptés
csharp converter feature
Contrôle de la mémoire
Contrôlez les pointeurs faibles ou partagés dans le code traduit pour détruire les objets inutilisés et rompre les références de boucle

Bibliothèque de support du traducteur

CodePorting.Translator Cs2Cpp est un framework capable de traduire du code C# en C++. Le code résultant fournit la même API que le code .NET d'origine et peut s'exécuter dans l'environnement C++ non géré traduit.

La bibliothèque de support du traducteur est une bibliothèque C++ avec des substituts aux classes .NET et du code de service. Le code traduit dépend en fin de compte de ce composant. Outre les fonctionnalités principales de .NET, notre bibliothèque prend en charge System.Net, System.Drawing, System.XML, System.Security et d'autres sous-systèmes. La bibliothèque de support du traducteur sera incluse dans le produit compilé. Si vous envisagez de distribuer votre code C++ traduit, il est recommandé d’inclure la dépendance sur le package NuGet de la bibliothèque de prise en charge du traducteur.
c sharp to cpp conversion scheme

Exemples de produits C# traduits avec succès en C++

Articles liés :

Ressources d’assistance et d’apprentissage