0

是否有人使用CLI 后端为 gcc编译器编译了 lib x264?(将 x264 编译成 .net dll)

4

1 回答 1

1

您使用的是 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模板,该模板适用于将 .NETSystem::String转换为 C 字符串并再次转换回来。

于 2010-07-13T03:01:02.463 回答