Outils pour utilisateurs

Outils du site


lang:csharp:clr

Ceci est une ancienne révision du document !


Table des matières

Syntaxe de C++/CLI

Les types C# se postfixe avec un ^ et on utilise using namespace à la place de using pour faire la différence avec le C++.

using namespace System::Threading;
Mutex^ mutex;

Une classe est autorisée à utiliser les types C# si sa déclaration est précédée de ref.

public ref class Carte {}

L'initialisation des variables statiques d'une classe doit se faire dans l'entête et l'allocation mémoire se faire avec un gcnew.

public ref class Driver
{
  static System::Collections::Generic::List<Carte^>^ cartes = gcnew System::Collections::Generic::List<Carte^>();

La notion de référence & n'existe pas pour les objets managés.

C# => C++

Pointeurs

Managed C++/CLI Array Conversion Error Archive du 22/11/2018

  • C#
CalcSumArray(new[] { 1.1f, 2.2f, 3.3f, 4.4f, 5.5f, 6.6f }, 6);
  • CLR
static float CalcSumArray(array<float>^ val, int length)
{
  cli::pin_ptr<float> t = &val[0];
  float* y = t;
  return SumArray(y, length);
}
  • C++
float SumArray(float* val, int length);

C++ => C#

string

char *pcertificate;
String^ sCertificate;
sCertificate = gcnew String(pcertificate);
lang/csharp/clr.1544445867.txt.gz · Dernière modification : 2018/12/10 13:44 de root