在我们的团队中,我们面临着这样的选择:我们需要从我们的C#代码中调用外部第三方代码并处理它的输出。
第三方代码有两种形式:一组dll文件和单个exe文件(可能自己调用这些dll文件)。可能的方法是使用Process.Start语句运行可执行文件并捕获其输出。另一个方法是直接调用dll。
我试图理解我们应该使用哪种方法。
一方面,调用可执行文件很简单,但另一方面,它不太健壮。
一方面,调用dll似乎更正确,但另一方面,为所有我们在本机C代码中拥有的函数提供C#绑定可能是非常复杂的任务。
但我需要更实质性的分析来做出最终决定。是否有人以前遇到过同样的问题,也许你可以分享你的发现。
这将非常有用!
编辑:在这种特殊情况下,我正在谈论视频转换。我需要从用户那里获取视频流并将其转换为一种视频格式。可以调用ffmpeg来完成这项工作,一切都很好,直到出现问题,我需要重新启动编码或采取任何措施。我无法估计需要多长时间,如果我需要同时转换几个视频,ffmpeg将不那么灵活,正如我计划的那样...
至少在我现在看来是这样。当我深入挖掘时,可能会出现更多问题。
第三方代码有两种形式:一组dll文件和单个exe文件(可能自己调用这些dll文件)。可能的方法是使用Process.Start语句运行可执行文件并捕获其输出。另一个方法是直接调用dll。
我试图理解我们应该使用哪种方法。
一方面,调用可执行文件很简单,但另一方面,它不太健壮。
一方面,调用dll似乎更正确,但另一方面,为所有我们在本机C代码中拥有的函数提供C#绑定可能是非常复杂的任务。
但我需要更实质性的分析来做出最终决定。是否有人以前遇到过同样的问题,也许你可以分享你的发现。
这将非常有用!
编辑:在这种特殊情况下,我正在谈论视频转换。我需要从用户那里获取视频流并将其转换为一种视频格式。可以调用ffmpeg来完成这项工作,一切都很好,直到出现问题,我需要重新启动编码或采取任何措施。我无法估计需要多长时间,如果我需要同时转换几个视频,ffmpeg将不那么灵活,正如我计划的那样...
至少在我现在看来是这样。当我深入挖掘时,可能会出现更多问题。