Pergunta

Alguém compilou a lib x264 usando Back-end CLI para gcc compilador?(Compilado x264 em .net dll)

Foi útil?

Solução

Você está usando recursos do C99?Caso contrário, Visual C++ com o /clr:pure opção deve resolver o problema.Você precisará de um pouco de C++/CLI misturado para definir seus pontos de entrada que outros projetos .NET podem chamar, mas eles podem estar em arquivos completamente separados (você pode compartilhar arquivos de origem somente C inteiros com projetos nativos).

EDITAR:Guia básico para fazer isso funcionar:

  • No Visual Studio, crie um projeto de biblioteca de classes C++/CLI
  • Adicione todos os seus arquivos de origem C ao projeto
  • Na configuração do projeto, defina o caminho de inclusão para que seus cabeçalhos sejam encontrados
  • Na configuração do projeto, defina também "Uso do Common Language Runtime" como /clr:pure
  • No arquivo .cpp criado pelo novo assistente de projeto, adicione #include diretiva para os arquivos de cabeçalho que prototipam as funções que você deseja usar.
  • No ref class criado pelo novo assistente de projeto (no arquivo .cpp mencionado acima), adicione algumas funções (talvez funções estáticas) que chamam as funções da sua biblioteca C.
  • Compile, adicione este .DLL como referência do seu projeto C# e aproveite

Como dica, em vez de criar uma função de encaminhamento no ref class para cada função na biblioteca, você pode querer criar funções que façam um trabalho útil (para a definição específica de útil para seu projeto específico) chamando várias funções de biblioteca.

Você provavelmente vai querer se sentir confortável com o marshal_as modelo que é bom para converter .NET System::String em cordas C e vice-versa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top