我正在以下列方式使用com DLL:
#Region "API Function"
<DllImportAttribute("abc.dll", EntryPoint:="optcntl")> _
Public Shared Function optcntl(ByRef pBlocks As blocks) As Integer
End Function
#End Region
此DLL使用其他四个dll来完成其处理。如果我将当前目录路径从/ bin /文件夹更改为包含所有DLL的C或D驱动器中的其他文件夹。我收到以下错误消息: System.AccessViolationException:尝试读取或写入受保护的内存。 这通常表明其他内存已损坏
任何帮助都会得到适用..
答案 0 :(得分:1)
如果我理解正确,只要将当前目录路径更改为不包含abc.dll调用的四个dll的路径,就会出错。如果是这样,可能是abc.dll总是在当前目录路径中查找其他四个dll而不是应用程序目录或某个特定位置。但是,这通常会给您一个不同的错误消息,因此请确保在更改currendt目录时,无意中拾取了硬盘驱动器上四个dll的旧错误副本。