Pregunta

¿Alguien ha compilado lib x264 usando? Servidor CLI para gcc ¿compilador?(Compilado x264 en .net dll)

¿Fue útil?

Solución

¿Estás utilizando las funciones de C99?Si no, Visual C++ con el /clr:pure La opción debería funcionar.Necesitará un poco de C++/CLI mezclado para definir los puntos de entrada que otros proyectos .NET pueden llamar, pero pueden estar en archivos completamente separados (puede compartir archivos fuente completos solo en C con proyectos nativos).

EDITAR:Guía básica para hacer que esto funcione:

  • En Visual Studio, cree un proyecto de biblioteca de clases C++/CLI
  • Agregue todos sus archivos fuente C al proyecto
  • En Configuración del proyecto, establezca la ruta de inclusión para que se encuentren sus encabezados
  • En Configuración del proyecto, establezca también "Uso de Common Language Runtime" en /clr:pure
  • En el archivo .cpp creado por el asistente para nuevos proyectos, agregue #include directiva para los archivos de encabezado que crean prototipos de las funciones que desea utilizar.
  • En el ref class creado por el asistente de nuevo proyecto (en el archivo .cpp antes mencionado), agregue algunas funciones (tal vez funciones estáticas) que llamen a las funciones de su biblioteca C.
  • Compile, agregue este .DLL como referencia de su proyecto C# y disfrute

Como sugerencia, en lugar de crear una función de reenvío en el ref class Para cada función en la biblioteca, es posible que desee crear funciones que realicen un trabajo útil (para la definición particular de útil para su proyecto en particular) llamando a un montón de funciones de la biblioteca.

Probablemente querrás sentirte cómodo con el marshal_as plantilla que es buena para convertir .NET System::String en cuerdas C y viceversa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top