Avez-vous de prendre un coup d'oeil sur le C++/CLI?
Laissez-moi vous donner un bref exemple. Voici le fichier source à partir d'un Visual C++ -> CLR -> projet de Bibliothèque de classes. Il fondamentalement obtenir un nom d'utilisateur Windows et le retourner.
Veuillez noter que, afin d'obtenir cette compilé, vous devez aller dans les paramètres de projet et de la marque "Dépendances Supplémentaires" comme "Hérite de l'objet parent" parce que nous sommes à l'aide de ces Fenêtres libs (kernel32.lib, user32.lib, ..)
// CSCPP.h
#pragma once
#include "windows.h"
using namespace System;
namespace CSCPP {
public ref class Class1
{
// TODO: Add your methods for this class here.
public:
String^ GetText(){
WCHAR acUserName[100];
DWORD nUserName = sizeof(acUserName);
if (GetUserName(acUserName, &nUserName)) {
String^ name = gcnew String(acUserName);
return String::Format("Hello {0} !", name);
}else{
return gcnew String("Error!");
}
}
};
}
Créer un nouveau projet C# et ajouter une référence à notre première C++/CLI Classe de Bibliothèque de projet. Et puis d'appeler la méthode d'instance.
namespace CSTester
{
class Program
{
static void Main(string[] args)
{
CSCPP.Class1 instance = new CSCPP.Class1();
Console.WriteLine(instance.GetText());
}
}
}
Cela a donné le résultat suivant sur ma machine:
Bonjour m3rlinez !
C++/CLI est essentiellement géré extension de C++ standard. Il vous permet d'utiliser des classes CLR et les types de données en C++/CLI projet et de faire connaître ce langage managé. Vous pouvez créé un wrapper géré pour votre ancien de la bibliothèque C++ à l'aide de ce. Il y a quelques bizarre syntaxes String^
pour définir le type de référence à CLR Chaîne. - Je trouver des "Quick C++/CLI - Apprendre le C++/CLI en moins de 10 minutes" pour être utile ici.