gpt4 book ai didi

c# - 在 C# 代码中使用 .dll 方法从文件加载数据

转载 作者:行者123 更新时间:2023-11-30 04:38:49 24 4
gpt4 key购买 nike

我想在 C# 中使用这些方法:

*      int LibRaw::open_datastream(LibRaw_abstract_datastream *stream)
* int LibRaw::open_file(const char *rawfile)
* int LibRaw::open_buffer(void *buffer, size_t bufsize)
* int LibRaw::unpack(void)
* int LibRaw::unpack_thumb(void)

存储在 libraw.dll 中。这些函数一一从文件加载数据...我一直在阅读有关 P/Invoke 的信息,但我不确定如何调用它们。任何人都可以向我展示如何在 C# 中一起使用所有这些函数来加载文件(存储在文件夹中的原始图像)或者如何 PIvoke 其中之一。

谢谢!

附注也许这可能有用:http://www.libraw.org/

最佳答案

在我工作的地方,我们发现最好的方法是用 C++/CLI 编写包装代码。我以为我有一篇关于这个过程的好博客文章,但显然不是。我确实有两篇较短的文章,一篇是关于如何使用 unmanaged static libraries 的和一个 how to wrap libraries (在托管 C++ 中与 C++/CLI 相对)。解决方案是相似的 - 只是您必须链接到一个加载 dll 的 stub 库或自己加载 dll 并调用 GetProcAddress 来获取您正在包装的例程。

优点是您可以直接从 C++/CLI 调用非托管代码,并且可以控制编码发生的时间和方式。缺点是您是用 C++ 编写的,您必须控制编码的发生方式。

关于c# - 在 C# 代码中使用 .dll 方法从文件加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com