Frage

Hat jemand lib x264 mit kompiliert? CLI-Backend für gcc Compiler?(X264 in .net-DLL kompiliert)

War es hilfreich?

Lösung

Nutzen Sie C99-Funktionen?Wenn nicht, Visual C++ mit dem /clr:pure Option sollte den Zweck erfüllen.Sie benötigen ein wenig gemischtes C++/CLI, um Ihre Einstiegspunkte zu definieren, die andere .NET-Projekte aufrufen können. Diese können sich jedoch in völlig separaten Dateien befinden (Sie können ganze Nur-C-Quelldateien mit nativen Projekten teilen).

BEARBEITEN:Grundlegende Anleitung, damit dies funktioniert:

  • Erstellen Sie in Visual Studio ein C++/CLI-Klassenbibliotheksprojekt
  • Fügen Sie alle Ihre C-Quelldateien zum Projekt hinzu
  • Legen Sie in der Projektkonfiguration den Include-Pfad fest, damit Ihre Header gefunden werden
  • Stellen Sie in der Projektkonfiguration auch „Verwendung von Common Language Runtime“ ein /clr:pure
  • Fügen Sie in der vom Assistenten für neue Projekte erstellten CPP-Datei Folgendes hinzu: #include Direktive für die Header-Dateien, die die Funktionen prototypisieren, die Sie verwenden möchten.
  • Im ref class Fügen Sie dem vom Assistenten für neue Projekte erstellten Projekt (in der oben genannten CPP-Datei) einige Funktionen (möglicherweise statische Funktionen) hinzu, die Ihre C-Bibliotheksfunktionen aufrufen.
  • Kompilieren Sie diese .DLL, fügen Sie sie als Referenz zu Ihrem C#-Projekt hinzu und genießen Sie es

Als Hinweis: Anstatt eine Weiterleitungsfunktion im zu erstellen ref class Für jede Funktion in der Bibliothek möchten Sie möglicherweise Funktionen erstellen, die nützliche Arbeit leisten (für die bestimmte Definition von nützlich für Ihr bestimmtes Projekt), indem Sie eine Reihe von Bibliotheksfunktionen aufrufen.

Wahrscheinlich möchten Sie sich damit vertraut machen marshal_as Vorlage, die sich gut zum Konvertieren von .NET eignet System::String in C-Saiten und wieder zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top