Zugriff auf Klassen aus dynamische importierter CSharp dll

PeteProgram

Mitglied
Hallo,

Ich habe mir mit CSharp (Visual Studio Express) eine Klassen-Bibliothek erstellt.

In dieser gibt es ein Interface

Code:
public interface CSInterface  
{
    void Calculate(int a1, int b1);
}

sowie eine Klasse

Code:
public class CSHandler 
{
   ...
   public CSHandler(CSInterface csi)  
   {
      ...
      this._csi = csi;
   }
 
   public void Foo()  
   {
      this._csi.Calculate(12,14);
   }
 
}

Nun habe ich ein Projekt in C++, bei dem ich diese Bibliothek nutzen kann/möchte/muss, dazu muss ich sie jedoch zur Laufzeit laden können.

Dazu habe ich 3 Fragen,

1. Wie kann ich in C++ eine Klasse laden und auf deren Funktion zugreifen?
2. Kann ich überhaupt in C++ eine Klasse schreiben, die von CSInterface erbt?
3. Wenn ja wie

Momentan versuche ich es über LoadLibrary und GetProcAddress aber irgendwie will das nicht so richtig.


Ich freue mich auch über Links Beispielen und zu entsprechender Literatur. Habe bei Google aber noch nicht viel dazu gefunden.

Vielen Dank und Grüße
 
Es gibt hier schon einige threads über das Verwenden externen Bibliotheksroutinen. Wenn Du mal hier im Forum nach 'LoadLibrary' suchst, dann wirst Du da was finden.
 
Danke für die Antwort, der Import mit LoadLibrary klappt bei mir bereits, mein Problem ist eher, dass ich jetzt nicht weiß wie ich eine Klasse daraus Instanziiere und auf deren Methoden zugreife.
 
Was für ein C++ Projekt hast du erstellt? Wenn es ein CLR-Projekt ist (also auf der .NET-Bibliothek basiert), brauchst du die CSharp-Lib nur über die Verweise (im Projektmappenexplorer) in dein Projekt einzuhängen. Dann kannst du die Klassen direkt verwenden.

Alle anderen C++ - Projekte (MFC, Win32, Console) können mit solchen Klassenbibliotheken NICHT arbeiten.

Gruß
MCoder
 
Zurück