Quelqu'un a-t-il compilé la bibliothèque x264 à l'aide du backend CLI pour le compilateur gcc ?
Question
Quelqu'un a-t-il compilé la bibliothèque x264 en utilisant Back-end CLI pour gcc compilateur?(Compilé x264 dans une DLL .net)
La solution
Utilisez-vous les fonctionnalités C99 ?Sinon, Visual C++ avec le /clr:pure
l'option devrait faire l'affaire.Vous aurez besoin d'un peu de C++/CLI mélangé pour définir vos points d'entrée que d'autres projets .NET peuvent appeler, mais ceux-ci peuvent se trouver dans des fichiers complètement séparés (vous pouvez partager des fichiers source entiers uniquement en C avec des projets natifs).
MODIFIER:Guide de base pour réaliser ce travail :
- Dans Visual Studio, créez un projet de bibliothèque de classes C++/CLI
- Ajoutez tous vos fichiers sources C au projet
- Dans Configuration du projet, définissez le chemin d'inclusion pour que vos en-têtes soient trouvés
- Dans la configuration du projet, définissez également « Utilisation du Common Language Runtime » sur
/clr:pure
- Dans le fichier .cpp créé par l'assistant de nouveau projet, ajoutez
#include
directive pour les fichiers d'en-tête qui prototypent les fonctions que vous souhaitez utiliser. - Dans le
ref class
créé par le nouvel assistant de projet (dans le fichier .cpp susmentionné), ajoutez quelques fonctions (peut-être des fonctions statiques) qui appellent les fonctions de votre bibliothèque C. - Compilez, ajoutez ce .DLL comme référence de votre projet C# et profitez-en
À titre indicatif, au lieu de créer une fonction de transfert dans le ref class
pour chaque fonction de la bibliothèque, vous souhaiterez peut-être créer des fonctions qui effectuent un travail utile (pour la définition particulière d'utile pour votre projet particulier) en appelant un ensemble de fonctions de bibliothèque.
Vous voudrez probablement vous familiariser avec le marshal_as
modèle qui est bon pour convertir .NET System::String
en chaînes C et vice-versa.