2009-10-08 47 views
2

我使用的是COM DLL以下列方式:System.AccessViolationException

#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:試圖讀取或寫入受保護的內存。 這通常是指示其他內存已損壞

任何幫助將appriaciated ..

回答

1

如果我理解正確的話,這樣的錯誤了,只要你改變當前目錄路徑一個不包含四個DLL是abc.dll調用。如果是這樣,可能是abc.dll總是在其他四個dll的currect目錄路徑中查找,而不是應用程序目錄或某個特定的位置。但是,這通常會給你一個不同的錯誤信息,所以請確保在更改currendt目錄時,硬盤上沒有一箇舊的錯誤複製的四個dll被無意中拾取。

+0

非常感謝您的回覆,我把所有DLL都放在abc.dll使用的特定文件夾中。 – Yogi 2009-10-09 06:51:08

相關問題