是否有人使用CLI 后端为 gcc编译器编译了 lib x264?(将 x264 编译成 .net dll)
问问题
838 次
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 回答