我正在编写一个C#应用程序,需要能够使用par2奇偶校验文件修复一组文件.对于C++,有很多东西可以做到,但是对于C#我找不到本机实现.
一种选择是使用来自C#的C++ DLL,但我宁愿不这样做,因为它不可能在x64应用程序中使用32位dll,所以我将我的应用程序限制为32位模式.
另一种选择是在后台使用par2cmdline,但我宁愿对进程有更多控制权(进度,取消等).
有没有人知道使用par2集修复文件的本地C#实现?
这不是一个直接的答案,但我认为有一种方法可以将 32 位 dll 加载到 64 位应用程序中:
http://dnjonline.com/article.aspx?ID=jun07_access3264
来自文章:
此解决方案需要额外的工作,因为必须创建加载 32 位 DLL 并公开其 API 的 32 位代理进程。此外,64 位方面也需要进行一些更改,因为消费者必须使用其中一种 IPC 技术,而不是直接访问 32 位 DLL。值得注意的是,在极端情况下,这项额外工作可能与从头开始开发 32 位 DLL 的 64 位版本所涉及的工作相当。
降低这些成本的一种可能方法是实现一个 64 位包装器 DLL,它公开与原始 32 位 DLL 相同的函数、参数、类型等。然后,该包装器 DLL 可以对已加载到代理进程中的原始 32 位 DLL 进行基于 IPC 的调用。