Qualcuno ha compilato Lib X264 utilizzando il backend CLI per il compilatore GCC?
Domanda
Qualcuno ha compilato Lib x264 usando Backend CLI per GCC compilatore?(Compilato x264 in .NET DLL)
Soluzione
Stai usando le funzionalità di C99? In caso contrario, Visual C ++ con l'opzione /clr:pure
dovrebbe fare il trucco. Avrai bisogno di un po 'di c ++ / cli miscelato per definire i tuoi entryPoint che altri progetti .NET possono chiamare, ma quelli possono essere in file completamente separati (è possibile condividere i file di origine solo con i progetti nativi). Modifica: Guida di base per effettuare questo lavoro:
- .
- In Visual Studio, creare un progetto di libreria C ++ / CLI CLASS
- Aggiungi tutti i file di sorgente C al progetto
- Nella configurazione del progetto, impostare il percorso include in modo che le intestazioni siano trovate
- Nella configurazione del progetto, impostare anche "Utilizzo del runtime della lingua comune" su
/clr:pure
- Nel file .cpp creato dalla nuova procedura guidata del progetto, aggiungi la direttiva
#include
per i file di intestazione che prototipo le funzioni che si desidera utilizzare. - Nel
ref class
creato dalla nuova procedura guidata del progetto (nel file .cpp precedente), aggiungi alcune funzioni (forse funzioni statiche) che chiamano le funzioni della libreria C. - Compila, aggiungi questo .dll come riferimento del tuo progetto C # e goditi
Come suggerimento, invece di creare una funzione di inoltro nel ref class
per ogni funzione nella libreria, è possibile effettuare funzioni che fanno funzioni utili (per la particolare definizione di utile per il tuo particolare progetto) chiamando un gruppo di Funzioni della libreria
Probabilmente vorrai sentirti a proprio agio con il modello marshal_as
che è buono per convertire .NET System::String
in C Strings e torna indietro.