Кто-нибудь скомпилировал lib x264, используя CLI backend для компилятора gcc? - PullRequest
0 голосов
/ 13 июля 2010

Имеет ли кто-нибудь скомпилированный lib x264, использующий CLI backend для компилятора gcc ?(Скомпилированный x264 в .net dll)

1 Ответ

1 голос
/ 13 июля 2010

Используете ли вы функции C99?Если нет, Visual C ++ с опцией /clr:pure должен сделать свое дело.Вам понадобится немного C ++ / CLI, чтобы определить ваши точки входа, которые могут вызывать другие проекты .NET, но они могут быть в совершенно отдельных файлах (вы можете совместно использовать исходные файлы только для C с собственными проектами).

РЕДАКТИРОВАТЬ: Основное руководство по выполнению этой работы:

  • В Visual Studio создайте проект библиотеки классов C ++ / CLI
  • Добавьте все исходные файлы C в проект
  • В Конфигурации проекта задайте путь включения, чтобы найти заголовки
  • В Конфигурации проекта также установите «Использование общеязыковой среды выполнения» на /clr:pure
  • В .cppфайл, созданный мастером нового проекта, добавьте директиву #include для заголовочных файлов, которые являются прототипом функций, которые вы хотите использовать.
  • В ref class, созданном мастером нового проекта (в вышеупомянутом файле .cpp), добавьте некоторые функции (возможно, статические), которые вызывают функции вашей библиотеки C.
  • Скомпилируйте, добавьте этот .DLL как ссылку на ваш проект C # и наслаждайтесь

В качестве подсказки, вместо создания функции пересылки в ref class для каждой функции в библиотеке, вы можете захотеть сделать функции, которые выполняют полезную работу (для конкретного определения, полезными для вашего конкретного проекта), вызывая группубиблиотечных функций.

Возможно, вы захотите освоиться с шаблоном marshal_as, который хорош для преобразования .NET System::String в строки C и обратно.

...