我正在使用EZTwain(非托管dll)来处理一些PDF。 我知道它只能读取它创建的PDF。 不幸的是,在现实世界中,它遇到了由其他库创建的PDF。 这将导致它失败并抛出AccessViolationException。

由于我的C#应用​​程序仍在继续发展,因此这本身并不是一个大问题。 不幸的是,当下一个涉及此文件并尝试对其进行重新处理时,它仍处于锁定状态。 大概EZTwain仍在加载...我不知道处于什么状态-但已被留下文件锁定。

无论如何,我是否可以强制DLL卸载并因此释放文件上的锁(P / Invoke调用或其他)?

如果我可以实现此目标,则可以第二次跳过EZTwain的使用。

干杯

[更新]

我尝试调用LoadLibrary,捕获访问冲突异常,然后捕获FreeLibrary,但我的文件仍被锁定。

我已经检查过Process Explorer:DLL肯定已被卸载,但文件仍处于锁定状态。

(看起来我将不得不使用应用程序域或单独的Exe建议)

  ask by rupertmulrenan translate from so

本文未有回复,本站智能推荐:

1回复

如何避免调用CUDA Dll的访问冲突异常?

我是CUDA的新手,也不熟悉C。 我写了一个Dll来实现CUDA方法(FFT)到我的C#程序中。 我首先调试dll作为控制台应用程序,以确保它正常工作,然后将其构建为dll。 所以我的问题是,在我的dll的第一次调用(cufftPlan1d())导致AccessViolationExcep
1回复

尝试读取或写入受保护的内存。 这通常表明c#中的其他内存已损坏(访问冲突)

这是我要执行减压的课程。 但是其给出的错误为“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。” http://doc.xceedsoft.com/products/Xceedzip/Uncompress_method.html 是我要介绍的功能。 希望能找到最好的
1回复

具有自定义结构的PInvoke访问冲突异常

我正在尝试使用P / Invoke填充POD结构。 C ++中的POD结构如下所示: 我试图小心地显式指定所有字段的宽度。 在C#中,“镜像”结构的定义如下: WCharStringPtr如下所示: 我有一个在C ++中定义的方法: P / Invoke e
1回复

访问冲突异常

我遇到一些奇怪的问题。 我已经使用OpenCV在VC ++中编写了一个小模块。 工作正常。 该代码汇总了来自连接到USB端口的CCTV摄像机的提要。 但是,我必须用C#编写其余的应用程序,因此我制作了VC ++代码的DLL,并从C#中调用了VC ++方法。 现在,我最终得到
4回复

仅在Vista(.net)中存在问题:从线程中调用非托管dll(Shell32.dll,函数:SHEmptyRecycleBin)

********平台:在Vista(最终版或家庭/高级版)中不起作用,在其他操作系统(xp,windows7)上则起作用*********** 我在线程内使用c ++。net(或c#.net)清空回收站。 当我直接这样做(没有线程)时,它可以工作。 但是,如果使用了线程,则不会。 请
1回复

SqlCeConnection中的访问冲突异常处理

申请/代码说明: 我的应用程序基于c#并使用SQL Server CE,并且在同一代码位置只有两次获得此异常。 直到此版本才引入此例外的崩溃。 此版本中唯一的变化是将.net框架更改为4.5.2。 我在处理SqlCeConnection时遇到访问冲突异常,并出现以下错误:
2回复

之前没有访问的访问冲突

我是P / 如图所示调用Graphviz。 当我写这篇博客文章时,代码运行得很好。 现在,我正在整理一个使用该代码渲染Graphviz图的HttpModule ,但是我在agmemread得到了一个AccessViolationException 。 就像我说的,这之前完美无缺。
1回复

从DllImport启动的c ++方法上的访问冲突

我对从DllImport启动的某些方法有一个奇怪的问题。 在本地c ++中,我有代码: 当我直接从主函数调用PrintTekst方法时,一切都很好,但是当我使用DllImport调用此方法时,会在线: 我有访问冲突异常 。 这是一种非常奇怪的情况,因为实际上我没有使用任何
1回复

托管到非托管代码调用会导致访问冲突...有时

此代码有时会导致以下异常: “试图读取或写入受保护的内存。这通常表明其他内存已损坏” 失败的行是groups = (TOKEN_GROUPS)Marshal.PtrToStructure(tokenInfo, typeof (TOKEN_GROUPS)); 我会说异常发生在
1回复

尝试在C#中创建基本编译器,但出现访问冲突错误

我正在尝试学习一些有关编译器的知识。 我正在使用NASM编译我的目标文件,并链接将其转换为dll。 我正在使用依赖关系遍历程序来验证我的dll的内容。 到目前为止,可以很好地在代码中编译我的dll,并且可以使用GetProcAddress检索它。 但是,当我尝试调用它时,出现以下错误: