1

我有一个第三方组件可以复制图像并为某个任务打开它,但它似乎没有释放文件句柄。

我已经阅读了该组件的文档,但它是在 2004 年发布的,并且有某种方法可以释放句柄,但当然它需要一个 (int bmpPtr)。所以它显然是一个指针。所以问题是:有没有办法检索某个文件的打开句柄......如果有人知道,有没有办法知道打开过程的身份是什么?

问题出在 C# 而不是 C++ 中。我更喜欢没有 DLLImport 的解决方案,但我认为它不可行。干杯

4

3 回答 3

1

从组件下方关闭文件句柄可能不是最好的主意,而且我不知道它可以从 C# 中完成。Dispose但是,您应该在您正在使用的组件上寻找一种方法。通常,Dispose用于清理非托管资源,例如文件句柄。

于 2009-07-09T14:06:32.610 回答
1

我不确定这是否适用,但只是为了记录:如果您使用 Image.FromFile 加载位图,则该文件将打开,直到图像被处理。

于 2009-07-09T14:07:04.933 回答
0

如果它有一个需要 bmpPtr 的方法,那么就有一个返回 bmpPtr 的方法。找出你在哪里调用它的那个,保存 bmpPtr 然后稍后使用它来发布。

于 2009-07-09T14:06:40.957 回答