有没有人使用lib x264编译过 gcc 的 CLI 后端 编译器?(将x264编译成.net dll)

有帮助吗?

解决方案

您使用 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 字符串,然后再返回。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top